Skip to content

Nihil (ENW)

Wayland-композитор на Rust + Smithay, где рабочий стол это 3D-мир, а окна приложений объекты в нём. Пишется с нуля, не надстройка над Hyprland.

  • Ходишь по миру как в игре, окна можно двигать и растягивать.
  • Режимы фокуса: True FullScreen, Framed FullScreen, Focus WorkSpace, плюс visionOS-подобный.
  • Чёткая картинка: суперсемплинг на окно, настраиваемая фильтрация.
  • Конфиги на Lua, компилируются в статический AOT-автомат.
  • Плагины и миры/карты.
  • Комнаты, сетки, летающие панели, мультиплеер: общий протокол presence + окон (QUIC, PROTOCOL.md).

Архитектура: Smithay 0.7 (Wayland, буферы, ввод, GLES-рендер) + Bevy headless (вся логика: сцена, камера, movers, рейкаст). Сеть: QUIC + FlatBuffers. Схема в CLAUDE.md.

Статус: M0 работает — вложенный композитор, окно клиента рисуется 3D-квадом (собственный GL-шейдер, позы из ECS). 10 юнит-тестов математики зелёные, свёрены с дампом Hypr3D. Дальше — M1 (камера + лучевой пик).

Всё подробно (решения, идеи, открытые вопросы, этапы, промпт и правила для агентов): SPEC.md

Terminal window
cargo build -p nihil
./target/debug/nihil # поднимает $XDG_RUNTIME_DIR/wayland-N
WAYLAND_DISPLAY=wayland-N alacritty # клиент внутрь
# IPC: echo list | socat - UNIX-CONNECT:$XDG_RUNTIME_DIR/nihil.sock