
( Под катом история о федоре )
Я вкатил Window Maker как WM. Потому что есть не просит, работает стабильно и выглядит приятно. Редактор

Ну вот например.
Что изменилось с прошлого раза: я попробовал десяточку и мне понравилось: 3D в интерфейсе, вот это всё, сразу такое ощущение появилось как будто 21 век уже наступил. К сожалению в WSL не заработал Void, что-то Майксософт не допилило ещё. Пока Майкрософт допиливает, решил попробовать собрать чего-то такого же в технологическом плане, только на линуксе.
В прошлый раз я оставил убунтовский компиз и выбросил всё остальное, теперь решил зайти с другой стороны: попробовать оставить всё остальное, но выбросить компиз. Выяснилось, что по крайней мере лаунчер и дэш могут работать без компиза и без патчей в Gtk, худ вероятно тоже, но я уже забил.
Ещё скриншоты на реальном железе в разных комбинациях: https://imgur.com/a/wGrfc
Сверху-вниз:
- Xfce4/Xfwm4 (без компиза)
- MATE/compiz-reloaded
- Openbox/xcompmgr
Я проверял на WM: Xfce4/MATE/Openbox/Cinnamon, на композиторах: встроенный в Xfwm4/встроенный в MATE/compiz-reloaded/xcompmgr/compton - работает довольно бодренько. Может быть на чём-то ещё взлетит, но мне надоело перебирать. Основное требование к менеджеру окон - поддержка Xshape input и работающий композитинг. В AwesomeWM/Fluxbox/i3 по причине отсутствия поддержки Xshape не работает например. Думаю возможна альтернативная реализация без необходимости Xshape, но я сделал так: полноэкранный оверлей который рендерит себя в прозрачный фреймбуфер, ввод от мышки должен проходить сквозь его прозрачную часть и попадать в окна которые находятся под ним.
На самом деле конечно не всё радужно, Юнити интегрируется с наутилусом, компизом и собственными компонентами, про Thunar оно ничего не знает и не может в нём открыть корзину с лаунчера, некоторые десктопные эффекты типа expose или блюра делались компизом, экспозе пока что пришлось уйти, блюр теперь надо делать компизом снаружи приложения, а не изнутри, ещё кое-что отвалилось по мелочи и не по мелочи. Есть определённое количество технического долга в виде зависимостей на гном и гтк, или например есть зависимости на systemd и upstart, на upstart опциональная, а на systemd обязательная, но при желании можно обойтись без них обоих, я например просто закоментировал эти части. В общем есть определённое количество мусора, но не так чтобы ужас-ужас всё пропало. Наоборот, оно завелось и взлетело на удивление легко и просто, всего 64 комита я сделал чтобы получить то, что на скриншоте, по-моему это не много, как для проекта такого размера.
Ну в общем, как наверное и так понятно из скриншотов, технические проблемы Юнити о которых можно прочитать в интернете мягко говоря сильно преувеличены. Я не могу вспомнить ещё один десктопный шелл который мог бы работать на Openbox с xcompmgr также как на MATE с compiz-reloaded, по-моему это настолько далеко от технических проблем, насколько это вообще может быть от них далеко. Про iPhone X говорят, что он минимум на 2,5 года опережает конкурентов, а с момента релиза Юнити прошло более 7 лет, какое ещё DE может делать аппаратно-ускореную графику с полной поддержкой 3D в интерфейсе в 2к18? Ну наверное что-нибудь на Qt, да? Вот есть Юнити 8 на Qt/QML:
// Rotating 3 times at top/bottom because that increases the perspective.
// This is a hack, but as QML does not support real 3D coordinates
// getting a higher perspective can only be done by a hack. This is the most
// readable/understandable one I could come up with.
...
// Because rotating it 3 times moves it more to the front/back, i.e. it gets
// bigger/smaller and we need a scale to compensate that again.
Тут написано, что QML не поддерживает настоящий 3D и вместо того чтобы повернуть изображение на определённый угол, оно три раза поворачивается на меньший угол, затем исправляется искажение возникающее при такой операции. Ну вот, Юнити 8 на Qt/QML, дамы и господа. Но вейленд-то сейчас придёт и точно спасёт нас от всех ужасов десктопного линукса, да?
Я когда проверял поддержку нескольких мониторов, столкнулся с такой проблемой: существующие менеджеры окон не могут зарезервировать место в определённых частях экрана. Оказалось, что это известная проблема иксов, единственное, что меня смутило - это то, что в убунтовском компизе это уже 7 лет работает. Я почитал, что про это пишет разработчик kwin и понял, что то, что он предлагает в моём случае работать не будет.
Что он предлагает: а) создать окно; б) установить тип окна в «панель»; в) настроить как это окно должно взаимодействовать с другими окнами (перекрывать/не перекрывать/т.д.); а kwin уже зарезервирует место под панель «где надо». Как работает то, что на скриншоте: 1) создаётся одно окно которое разворачивается на весь экран; 2) резервируется область экрана меньшая чем размер окна; 3) в некоторых случаях надо зарезервировать несколько областей в разных частях экрана. Как 1), 2) и 3) выразить через а), б) и в)?
Короче света в конце туннеля не видно, да и это наверное не туннель.
И вообще я думаю, что Марк Шаттлворт прав, что выбросил и Юнити 7, и Юнити 8, и дисплейный сервер Мир вероятно тоже не нужен. Свою роль в повышении популярности убунты это всё уже сыграло, зачем дальше тянуть резину?
Да и если так подумать, то зачем это всё на линуксе? Композитинг по Портеру/Даффу? Анимация с помощью трёхмерной призмы вращающейся вокруг своей оси? Да не, бред какой-то. Любой менеджер окон может открыть и терминал и браузер, а что ещё нужно? Fade-in - это тоже хорошая анимация, а когда окошко как бы выезжает слева-направо - это просто взрыв мозга, я и не знал, что так можно.
И расстраиваться конечно не из-за чего. Ещё лет через 7-15 десктопный линукс наверняка достигнет уровня Юнити и год линукса на десктопах обязательно настанет, только попозже, но обязательно настанет, к гадалке не ходи. А пока что вот вам артефакты древней цивилизации:
Исходники того, что на скриншоте (GPL v3): https://github.com/alekseyt/unity7/tree/void
Шаблон для сборки под Void: https://github.com/alekseyt/void-packages-private/tree/master/unity7-chromatic
>>> Просмотр
(1920x1080,
614 Kb)
Благодаря хакатону и успеху кампании по сбору средств для разработки новой библиотеки композитора, проект Sway (совместимый с i3 фреймовый оконный менеджер для Wayland) получил возможность ускорить своё развитие и уже сегодня запустить alpha тестирование релиза версии 1.0. Основные нововведения:
- Переход от библиотеки композитора wlc к собственной wlroots (с поддержкой Wayland и X11 в качестве backend, с описанием процесса разработки в блоге в трёх частях);
- Настройки вывода: поворот, масштабирование, HiDPI;
- Профили для схем комбинирования различных устройств ввода при их одновременном использовании;
- Многопользовательское мультитерминальное решение для организации на базе одного компьютера несколько независимых рабочих мест;
- Расширенные возможности Wayland: объекты типа изображение, базовый протокол GTK для выделения, протокол для экранных клавиатур, протокол для скриншотов;
- Улучшена производительность;
- Полностью удалена поддержка проприетарного драйвера nvidia (поддерживается nouveau).
После предыдущего релиза Sway 0.15 в основной код проекта были приняты 624 изменения от 5 разработчиков, в то же время в библиотеку wlroots были приняты 2329 изменения от 39 разработчиков.
Новая версия онлайн-редакторов ONLYOFFICE c оглавлением и новым механизмом отображения шрифтов
Вышла версия 5.1 онлайн-редакторов ONLYOFFICE с оглавлением, новыми плагинами и шрифтами.
Обновления во всех редакторах:
- Новый механизм отображения шрифтов без квадратов, который подбирает наиболее подходящий замещающий шрифт для символов

До релиза 2.10 остаётся исправить уже меньше десятка блокирующих ошибок. Попутно команда занялась оптимизацией скорости работы.
Буквально сегодня Ell сделал рисование кистями выполняемым в отдельной нити процесса, так что даже на старом железе можно без особой боли рисовать тысячепиксельной кистью. Он же чуть раньше добавил общие для программы функции распаралеливания:
https://git.gnome.org/browse/gimp/commit/?id=86b89cf62a14b98056355d0c8ad2b27e...
Эвинд, в свою очередь, допилил в библиотеке babl быстрые пути конвертирования между основными форматами хранения пикселей:
https://www.patreon.com/posts/babl-fast-path-18052156
Алсо, на днях влили в master-ветку новую тёмную тему интерфейса — более контрастную и без проблем с нечитаемыми неактивными пунктами меню. Кое-что ещё придётся довылизать, но в целом стало лучше. Светлая и системная темы интерфейса никуда не делись, как и цветная тема иконок (в размерах от микроскопического до пригодного для HiDPI).
>>> Просмотр
(1920x1200,
2084 Kb)

В ожидании релиза CRUX 3.4 начинаю потихоньку перекатываться на обновлённые версии пакетов, хотя разработчики и не гарантируют стабильной работы, но уже можно сменить версию на 3.4 в /etc/ports/*.rsync файликах и обновить дерево портов ports -u
. Судя по выхлопу ports -d
нам обещают свежий firefox 59 и свежий php 7. Может быть что-то ещё, чем я не пользуюсь.
На скриншоте всё тот же CRUX, всё тот же FVWM. Панель задач fvwm немного допилена и смещена влево, т.к. когда пишешь код, хочется чтобы он всегда был в центре экрана перед глазами, дабы не крутить головой, поэтому чтобы слева небыло пустого пространства, было решено расположить панель. И всё равно при запуске vim основной код приходится распологать ещё правее, жамкая ^Wv
.
- ШГ в терминале Fixed (стандартный из Xorg)
- ШГ в заголовках окон Atari с поддержкой кириллицы
>>> Просмотр
(1920x1080,
64 Kb)

На скрине Gnome Builder, Gnome 3 на Wayland и самописный браузер на Webkit2Gtk и Rust (пока что без Client Side Decorations ибо не хочет заводиться нормально).
Попробовать Gnome Builder решился относительно недавно и оказался приятно удивлён, все работает практически из коробки:
- Автокомплит Python — работает из коробки
- Rust тоже работает из коробки, но требует RLS, а если нужен Racer, то нужно поставить bracer
- Много чего сделано для удобства, например автоматический переход в ночной режим где тема Builder'a меняется на тёмную
- Есть Quick документация, достаточно «нажать» по функции и откроется соответствующая страница документации (с Vala точно работает,на других ЯП не пробовал)
Если интересует сам браузер, то можно просмотреть сырцы здесь, но сразу предупреждаю что с Нуво и Вейлендом ютуб не хочет работать нормально, а на иксах вообще бывает что виснет.
>>> Просмотр
(1920x1080,
266 Kb)