Композитор Wayland на smithay: сессия, xdg-shell, ввод, рендеринг через OpenGL ES с отслеживанием повреждений. Протоколы xdg-decoration, viewporter и presentation-time. Окна в стиле Windows 11: заголовок с названием и кнопками, перетаскивание, изменение размера за края и углы, сворачивание и разворачивание. Панель задач с подписями окон, часами и переключателем рабочих областей. Меню «Пуск» со списком приложений и поиском в текущей раскладке. Переключение окон по Alt+Tab с подтверждением при отпускании Alt. Собственный растровщик текста на fontdb + fontdue с гамма-коррекцией покрытия: без хинтинга штрихи на мелком кегле выходят рваными. Приложения запускаются в отдельной сессии D-Bus, иначе однопользовательские программы находят уже запущенный экземпляр во внешней сессии и открывают окно не в Lark. 127 тестов, clippy без замечаний.
3.6 KiB
3.6 KiB
Lark DE
Лёгкая среда рабочего стола на Rust для слабых устройств.
Что уже работает
- Композитор Wayland на smithay: сокет,
xdg-shell, вывод, ввод, рендеринг через OpenGL ES, отслеживание повреждений - Окон в стиле Windows 11: заголовок с названием и кнопками, перетаскивание, изменение размера за края и углы
- Панель задач: кнопка «Пуск» с логотипом, подписи окон, часы, переключатель рабочих областей
- Меню «Пуск»: список приложений и поиск, набираемый с клавиатуры в текущей раскладке
- Управление окнами: свернуть, развернуть, закрыть,
Alt+Tab - Рабочие области: четыре по умолчанию, переключение с клавиатуры
- Свой растровщик текста на
fontdb+fontdue - Приложения запускаются в Lark, а не во внешней сессии
Чего пока нет — XWayland, бэкенда DRM/KMS, индикаторов трея и приложений Фазы 4. Подробности в дорожной карте.
Целевое железо
Оптимизация под слабые устройства (например, icl bi1011):
- Intel Celeron/Pentium (N-серия)
- 4–8 ГБ RAM
- Встроенная Intel UHD Graphics
- eMMC/SSD
Технологический стек
| Компонент | Крейт | Состояние |
|---|---|---|
| Композитор Wayland | smithay | используется |
| Рендеринг | smithay (GlesRenderer) |
используется |
| Ввод и раскладка | smithay + xkbcommon | используется |
| Текст | fontdb + fontdue | используется |
| Конфигурация | toml + serde | используется |
| Логирование | tracing | используется |
| Мультиязычность | fluent | используется |
Структура проекта
lark/
├── src/
│ ├── compositor/ # Wayland композитор, ввод, декорации, раскладка
│ ├── shell/ # Панель, меню «Пуск», переключатель окон, часы
│ ├── services/ # Фоновые службы (заготовки)
│ ├── apps/ # Свои приложения (заготовки)
│ ├── text.rs # Растровщик текста
│ └── config.rs # Конфигурация
├── locales/ # Переводы (.ftl)
├── docs/ # Документация
├── scripts/ # Проверка на виртуальном дисплее
└── tests/ # Интеграционные тесты
Быстрый старт
cargo build --release
./target/release/lark
Проверка без дисплея:
./scripts/dev-run.sh # поднимает Xvfb и делает снимок экрана
Подробности — в сборке и запуске.
Документация
Лицензия
MIT