No description
Сборка: - Dockerfile (builder/runtime/headless/binary) и .dockerignore - scripts/build-remote.sh: сборка на другой машине, возврат бинарника и проверка без дисплея (--check) - в требования добавлен libseat-dev; dev-run.sh принимает LARK_BIN Интерфейс: - свой программный холст (src/canvas.rs): скругления, градиенты, тени, значки; слои кэшируются по отпечатку состояния, поэтому неизменный слой не перерисовывается - панель задач в раскладке Windows 10: «Пуск», строка поиска, рабочие области, кнопки окон с подписями и индикатором, трей, часы и полоска «показать рабочий стол» - меню «Пуск» «1 в 1»: полоса со списком, настройками и питанием, поиск, список по алфавиту с группами, плитки, прокрутка - настройки в стиле Windows 11: разделы и карточки, обои, анимации, раскладки, ввод, окна, сброс общий и у каждой настройки - рабочий стол: шесть вариантов обоев, значки приложений и ~/Desktop - значки вместо прямоугольников: свой набор фигур, включая кнопки заголовков окон - растровщик текста: целые кегли и базовая линия, кривая контраста вместо «загустения», кэш ширин для измерений Ввод и состояние: - список приложений читается из .desktop-файлов, ярлыки ~/Desktop тоже - индикаторы трея читают батарею, Wi-Fi, звук и Bluetooth - переключение раскладок (Super+Space) и настраиваемый их список - поиск в интернете через uv + ddgs из меню «Пуск» - анимации появления меню и настроек (отключаются в настройках) - исправлено: обои перекрывали окна, клик оболочки уходил приложению, значки рабочего стола отбирали указатель, тень вылезала из-за скруглений прямоугольником, ярлыки не сдвигались при панели сверху Документация: раздел про удалённую сборку, описание интерфейса и настроек, холст и слои в архитектуре, обновлённая дорожная карта. |
||
|---|---|---|
| docs | ||
| locales | ||
| scripts | ||
| src | ||
| tests | ||
| .dockerignore | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| clippy.toml | ||
| Dockerfile | ||
| README.md | ||
Lark DE
Лёгкая среда рабочего стола на Rust для слабых устройств.
Что уже работает
- Композитор Wayland на smithay: сокет,
xdg-shell, вывод, ввод, рендеринг через OpenGL ES, отслеживание повреждений - Панель задач в раскладке Windows 10: «Пуск», строка поиска, рабочие области, кнопки окон с подписями, индикаторы батареи, Wi-Fi, звука и Bluetooth, часы и полоска рабочего стола
- Меню «Пуск» «1 в 1» как в Windows 10: полоса с настройками и питанием,
поиск, список установленных приложений по алфавиту (читается из
.desktop-файлов), закреплённые плитки, прокрутка, поиск в интернете черезddgs - Окна: заголовок со значками кнопок, перетаскивание, изменение размера за края и углы, минимизация, разворот
- Рабочий стол: обои (шесть вариантов) и значки приложений вместе с
содержимым
~/Desktop - Настройки в стиле Windows 11: оформление и обои, панель, рабочий стол, клавиатура (список раскладок и чем переключать), ввод, окна — применяются сразу, сохраняются в файл, есть сброс как общий, так и у каждой настройки
- Материальный интерфейс: скругления, градиенты, акцентные подложки и значки, нарисованные фигурами на собственном холсте
- Свой растровщик текста на
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/ # Панель, меню «Пуск», настройки, рабочий стол, значки
│ ├── canvas.rs # Программный холст: фигуры, значки, слои
│ ├── services/ # Фоновые службы (заготовки)
│ ├── apps/ # Свои приложения (заготовки)
│ ├── text.rs # Растровщик текста
│ └── config.rs # Конфигурация
├── locales/ # Переводы (.ftl)
├── docs/ # Документация
├── scripts/ # Проверка на виртуальном дисплее и сборка на другой машине
├── Dockerfile # Сборка и проверка в контейнере
└── tests/ # Интеграционные тесты
Быстрый старт
cargo build --release
./target/release/lark # вложенно, внутри графической сессии
Проверка без дисплея:
./scripts/dev-run.sh # поднимает Xvfb и делает снимок экрана
Сборка на другой машине (слабому устройству не обязательно компилировать проект самому):
./scripts/build-remote.sh niko@n1ko.dev 2241 --check
Подробности — в сборке и запуске.
Документация
Лицензия
MIT