Saya
В данный момент я работаю над своим окружением рабочего стола для Linux, которое работает с любым Wayland-композитором, поддерживающим протокол Layer Shell .
Проект сильно вдохновлён Eww и Fabric . Я хотел разобраться, как работают подобные системы, и в итоге решил написать своё решение, уже на Go. Окружение всё ещё находится в активной разработке. Исходный код, исполняемые файлы и документация будут доступны позже.
На данный момент реализованы следующие части окружения:
-
Меню питания — управление питанием
-
Док (dock) — меню, вдохновлённое macOS, с возможностью настройки пользовательских действий
-
Меню запуска — позволяет запускать приложения, искать в Интернете и выполнять многие другие действия при помощи поиска
-
Сервер уведомлений — реализация демона уведомлений
-
Панель — располагается с краю экрана и отображает информацию о системе
-
Компоненты — среда исполнения пользовательских виджетов с поддержкой реактивности
-
Экран блокировки — блокирует Wayland-сессию и отображает информацию при помощи модулей
Для экрана блокировки были разработаны привязки (bindings) Go для библиотеки
gtk-session-lock
, которая реализует протоколext-session-lock-v1
в GTK.
Все программы настраиваются в конфигурационных YAML-файлах, их внешний вид можно кастомизировать при помощи CSS. Для меню запуска и компонентов используется встроенный скриптовый язык Tengo.
Помимо готовых частей окружения и компонентов, Saya предоставляет набор
библиотек (libsaya
) для создания интегрированных приложений рабочего стола на
Go.
Откуда взялось название «Saya»? Я назвал этот проект в честь своей кошки :)
Демонстрация
Здесь представлены некоторые части окружения рабочего стола.

Панель (конфигурация и стили по умолчанию)

Меню запуска приложений (конфигурация и стили по умолчанию)

Меню питания (конфигурация и стили по умолчанию)