среда, 28 июня 2023 г.

TileOS - новый дистрибутив с мозаичными оконными менеджерами

Приветствую. Сегодня хочу подробно рассказать о своем новом проекте, работу над которым начал в мае этого года - TileOS. TileOS это дистрибутив на базе Debian Stable, использующий в качестве рабочего стола различные мозаичные (тайлинговые) оконные менеджеры, преимущественно - на Wayland. Основная цель этого дистрибутива отчасти схожа с проектом Ubuntu Sway Remix - предоставить готовое к использованию окружение, дружелюбное как к опытным пользователям Linux, так и к новичкам, желающим попробовать мозаичные оконные менеджеры, не тратя кучу времени на их настройку.

Поводом для создания TileOS послужила неоднозначность Ubuntu. Во первых - я так и не добился официального ответа по поводу включения Ubuntu Sway Remix в официальное семейство Ubuntu. Во-вторых - намеченный переход на сборки, полностью построенные на пакетном менеджере Snap, и несмотря на заявления Canonical о том, что классические сборки останутся на месте - есть повод для беспокойства. Да и в целом Ubuntu нравится меньшему количеству людей, чем Debian. Однако заранее хочу подчеркнуть - отказываться от дальнейшей разработки и поддержки Ubuntu Sway Remix я не собираюсь. Кроме этого, TileOS лишен всяческих ограничений, как лицензионного, так и технического характера. Если в Ubuntu Sway Remix я вынужден более менее следовать общепринятым заветам по созданию Ubuntu Flavors, сохраняя структуру дистрибутива, используя те же методы сборки и так далее, то в TileOS у меня полностью развязаны руки и полный карт-бланш на внесение любых изменений (в пределах разумного). Поэтому даже несмотря на то, что по мнению некоторых пользователей Linux я выбрал весьма неудачную основу для нового дистрибутива, можно все сделать очень красиво и привлекательно для всех. Было бы время :( И хочу ещё раз ответить на вопрос - почему Debian? Потому что этим дистрибутивом я пользуюсь 10 лет, я ему абсолютно доверяю и знаю его очень хорошо.

Одна из сложностей создания сборки или иного дистрибутива на базе Debian заключается в том, что вам необходим репозиторий, в котором вы будете публиковать свои пакеты с настройками и прочим ПО. В случае Ubuntu эту проблему решает Launchpad, в котором можно просто создать PPA и загружать туда все необходимое. Ресурс дает 2 гигабайта места (потом можно попросить увеличить) и берет на себя всю заботу по сборке пакета, его публикации и цифровой подписи. В Debian такого нет. Изначально для этих целей я использовал Open Build Service, от проекта OpenSUSE, и в целом меня все устраивало. Однако недавно начались серьезные проблемы с его зеркалами, в результате чего мой репозиторий попросту отваливался в случайные моменты, из-за чего я не мог ни собрать ISO-образ, ни банально обновить систему из него. Решено было создать собственный репозиторий, и полностью контролировать его самому. Минус у этого, лично для меня, всего один - сборка пакетов происходит на локальной машине (на моем компе), и в репозиторий загружаются уже готовые пакеты. Ну и много ручной работы, хотя я просто ленивый и все никак не могу заставить себя обернуть все это в скрипты. Тем не менее, новый репозиторий создан и успешно работает, доступны две ветки - stable и testing, в будущем планируется добавление ещё одного репозитория со свежими видеодрайверами. Ну и наверное главное преимущество - репозиторий доступен людям по всему миру, никаких ограничений, блокировок и тд, VPN не понадобится.

Так как я большой фанат Sway, основную редакцию было решено делать именно с ним. Тем более уже есть наработки из Ubuntu Sway Remix. Для второй редакции я выбрал River - активно развивающийся Wayland-композитор, сочетающий в себе все хорошие стороны dwm и Awesome, правда пока находящийся в статусе экспериментального. От чего этот статус получит и вариант TileOS с ним. Структура дистрибутива такова, что любой желающий может предложить свой собственный вариант TileOS, с нужным ему оконным менеджером, не обязательно на Wayland. Для этого я напишу отдельную инструкцию и разумеется - буду помогать со сборкой пакетов и адаптацией конфигов.

Теперь рассмотрим сам TileOS. На момент написания статьи доступна вторая альфа-версия, с оконным менеджером Sway. Как и Ubuntu Sway Remix, TileOS использует установщик Calamares, а также дисплейный менеджер greetd для управления входом в систему. Поддерживается режим LiveCD. Сама система содержит минимальное количество ПО, только самое необходимое. Дополнительное ПО можно выбрать прямо в установщике, выбор основан на моих личных предпочтениях, однако любой может предложить и что-то свое. Большинство конфигов взято из Ubuntu Sway Remix с минимальными изменениями, так как они успешно показали себя в работе на протяжении уже трех выпусков USR. В качестве темы оформления и общей цветовой палитры дистрибутива был выбран Catppuccin, использующий мягкие пастельные тона цветов, и имеющий готовые цветовые схемы и темы для огромного числа компонентов, таких как эмуляторы терминала, GTK, Qt, Sway и так далее. Возможно конечно не идеал, но здесь уже вкусовщина. И я работаю над тем, чтобы сделать смену оформления интерфейса максимально простой для пользователя, которому не понравится дефолтный вид TileOS. И да - логотип дистрибутива пока тоже не финальный. Работа ведется.






Гораздо больше изменений находится под капотом. В первую очередь - это интеграция компонентов рабочего стола с системным менеджером systemd, благодаря проекту sway-systemd. С его помощью многие компоненты, например панель Waybar, запускаются как пользовательские сервисы systemd, независимо от общего конфигурационного файла Sway. Таким образом для перезапуска панели, с целью смены её настроек, не требуется перезапуск всего оконного менеджера. Плюс ко всему все компоненты, запущенные таким образом, помещаются в отдельную контрольную группу (cgroups), что позволяет задействовать механизм systemd-oomd, предотвращающий коллапс системы при резком заполнении всей оперативной памяти. Без раздельных контрольных групп systemd-oomd в момент пикового потребления ОЗУ может грохнуть весь рабочий стол целиком. Здесь же он пристрелит строго виновника перегрузки, и мягко его завершит. Таким образом достигается существенно более гибкий контроль над ресурсами системы, возможность независимого аудита отдельных компонентов (например просмотр системного журнала только для панели Waybar) и многое другое. Также sway-systemd управляет и автозапуском приложений, для чего достаточно поместить ярлык нужного приложения в ~/.config/autostart. Хотя многие программы делают это и сами при активации такой настройки (например Telegram). Минус у подобного решения, как по мне, всего один - нельзя задействовать кастомную директорию для конфигов компонента. Например, в Ubuntu Sway Remix дефолтные настройки Waybar лежат в /etc/xdg/xdg-ubuntusway/waybar, и пользователь может заменить их своими, расположив их в ~/.config/waybar, а при их удалении - вернуть все в заводское состоянии. При использовании sway-systemd так сделать нельзя - конфиг должен уже находиться в ~/.config/waybar, в противном случае будет задействован тот, что предоставляется по умолчанию самим Waybar. Поэтому некая защита от дурака исчезла, и при случайном удалении конфигов в домашней директории - все сломается.

Другим заметным преимуществом является набор твиков системы, безопасных но полезных. Например при клике на накопителе в файловом менеджере не требуется вводить пароль администратора, как это имеет место быть в обычном Debian (фактически я воссоздал поведение Ubuntu), для разных типов накопителей задействуются оптимальные планировщики ввода-вывода: для обычных жестких дисков это BFQ, для SSD и eMMC это mq-deadline, а для NVMe накопителей планировщик отключается вовсе (ибо не нужен). Добавлены некоторые оптимизации из SteamOS, направленные на улучшение работы игр, запущенных в Proton. Уменьшен таймер остановки сервисов systemd, с 2-х минут до 10 секунд, чтобы в случае повисания какого-либо из сервисов - не ждать 2 минуты пока он завершится принудительно. Увеличены лимиты на количество открытых файловых дескрипторов и поднят приоритет для некоторых звуковых устройств, что будет полезно людям, занимающимся музыкой. И это не предел.

Кроме того, в репозиторий планируется добавлять или бэкпортировать из Debian Testing некоторое ПО, востребованное в подобного рода окружениях, а также поддерживать сам рабочий стол в актуальном состоянии. Например wlroots, Sway и некоторое другое ПО в TileOS УЖЕ свежее чем в Debian 12. Плюс ко всему подключены репозитории со сторонним ПО, таким как Visual Studio Code, Waydroid, Onlyoffice, а также браузерами Brave и Librewolf. Их также можно выбрать в установщике, либо установить в уже установленной системе.

Сейчас главным образом идет подготовка к первой бете. В скором времени планируется создать страницы на Mastodon, открыть Telegram-канал и комнату в Matrix, для обсуждения дистрибутива и его разработки. Ну и само собой - сделать видеообзор :) Четкой даты релиза TileOS нет, он будет выпущен как будет готов. Однако минорные обновления планируется выпускать раз в квартал, также как и в Debian. Отписываться о тестировании в настоящее время можно в Телеграм-чате по ссылке ниже. На этом у меня пока все. Ссылки на все ресурсы по TileOS вы найдете ниже. До встречи!

Репозиторий: https://repo.tile-os.com

Репозиторий на Github: https://github.com/Tile-OS

Телеграм-чат: https://t.me/+kIglYNXl6qY3ZjBi

Комментариев нет:

Отправить комментарий