No description
Find a file
Niko Marmeladkov 725ca2ba37 Интерфейс Material 3 и сборка в Docker на удалённой машине
Сборка:
- 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 из меню «Пуск»
- анимации появления меню и настроек (отключаются в настройках)
- исправлено: обои перекрывали окна, клик оболочки уходил приложению,
  значки рабочего стола отбирали указатель, тень вылезала из-за
  скруглений прямоугольником, ярлыки не сдвигались при панели сверху

Документация: раздел про удалённую сборку, описание интерфейса и
настроек, холст и слои в архитектуре, обновлённая дорожная карта.
2026-10-18 14:46:30 +03:00
docs Интерфейс Material 3 и сборка в Docker на удалённой машине 2026-10-18 14:46:30 +03:00
locales Первая версия Lark DE 2026-10-18 09:18:57 +03:00
scripts Интерфейс Material 3 и сборка в Docker на удалённой машине 2026-10-18 14:46:30 +03:00
src Интерфейс Material 3 и сборка в Docker на удалённой машине 2026-10-18 14:46:30 +03:00
tests Первая версия Lark DE 2026-10-18 09:18:57 +03:00
.dockerignore Интерфейс Material 3 и сборка в Docker на удалённой машине 2026-10-18 14:46:30 +03:00
.gitignore Первая версия Lark DE 2026-10-18 09:18:57 +03:00
Cargo.lock Первая версия Lark DE 2026-10-18 09:18:57 +03:00
Cargo.toml Первая версия Lark DE 2026-10-18 09:18:57 +03:00
clippy.toml Первая версия Lark DE 2026-10-18 09:18:57 +03:00
Dockerfile Интерфейс Material 3 и сборка в Docker на удалённой машине 2026-10-18 14:46:30 +03:00
README.md Интерфейс Material 3 и сборка в Docker на удалённой машине 2026-10-18 14:46:30 +03:00

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