Сборка: - 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 из меню «Пуск» - анимации появления меню и настроек (отключаются в настройках) - исправлено: обои перекрывали окна, клик оболочки уходил приложению, значки рабочего стола отбирали указатель, тень вылезала из-за скруглений прямоугольником, ярлыки не сдвигались при панели сверху Документация: раздел про удалённую сборку, описание интерфейса и настроек, холст и слои в архитектуре, обновлённая дорожная карта.
102 lines
5.2 KiB
Markdown
102 lines
5.2 KiB
Markdown
# 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. Подробности в
|
||
[дорожной карте](docs/ROADMAP.md).
|
||
|
||
## Целевое железо
|
||
|
||
Оптимизация под слабые устройства (например, 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/ # Интеграционные тесты
|
||
```
|
||
|
||
## Быстрый старт
|
||
|
||
```bash
|
||
cargo build --release
|
||
./target/release/lark # вложенно, внутри графической сессии
|
||
```
|
||
|
||
Проверка без дисплея:
|
||
|
||
```bash
|
||
./scripts/dev-run.sh # поднимает Xvfb и делает снимок экрана
|
||
```
|
||
|
||
Сборка на другой машине (слабому устройству не обязательно компилировать
|
||
проект самому):
|
||
|
||
```bash
|
||
./scripts/build-remote.sh niko@n1ko.dev 2241 --check
|
||
```
|
||
|
||
Подробности — в [сборке и запуске](docs/BUILD.md).
|
||
|
||
## Документация
|
||
|
||
- [Архитектура](docs/ARCHITECTURE.md)
|
||
- [Дорожная карта](docs/ROADMAP.md)
|
||
- [Сборка и запуск](docs/BUILD.md)
|
||
|
||
## Лицензия
|
||
|
||
MIT
|