A mature X11 daily driver
Openbox-class window management with ICCCM/EWMH interoperability, crash-safe client adoption, and regression-by-regression compatibility evidence.
A small, predictable, Openbox-inspired window manager and Wayland compositor with one desktop policy and two deliberately separate backends.
Openbox is the behavioral reference, not a dependency. Version 0.3.0 carries the same restrained stacking-desktop behavior across the mature X11 window manager and a new native Wayland compositor—without turning either display server into the internal model.
Openbox-class window management with ICCCM/EWMH interoperability, crash-safe client adoption, and regression-by-regression compatibility evidence.
A Smithay backend brings the same focus, stacking, workspace, placement, decoration, menu, and session policy to native Wayland clients.
Bindings, menus, workspaces, themes, and application rules live in one validated file. Typos fail loudly.
Optional XWayland clients share the same core policy, with lifecycle recovery, clipboard and drag-and-drop bridging, scaling, and toolkit coverage.
Nested menus, XDG application discovery, live window and workspace lists, and bounded command-generated menus.
X11 and Wayland are independently linked and packageable. The core stays toolkit-free, display-server-neutral, and contains no unsafe Rust.
nobox can expose structured desktop state, a trustworthy event stream, window-addressed input, and consented capture to an AI agent harness on X11, native Wayland, and XWayland. The boundary is part of the session, so control remains visible and enforceable.
Access is granted per executable. Windows can be hidden from agents entirely, agent activity is drawn by the window manager, and a physical kill chord always outranks synthetic input.
Version 0.3.0 adds the native Wayland path without displacing the established X11 session. The release passed the complete developer gate and a 68-test CTest suite; direct DRM/KMS remains explicitly pre-release until its guarded hardware record is complete.
X11 stays the mature daily-driver path. Wayland ships as a working nested baseline with a clearly marked hardware gate.
Smithay-powered rendering, input, workspaces, menus, sessions, live configuration, and bounded protocols for modern toolkits.
A tiny selector launches separately linked X11 or Wayland executables. Either backend—and XWayland—can be omitted at build time.
The existing deny-by-default grant, observation, capture, accessibility, input, consent, and human-override model now spans both backends.
X11 is the compatibility default. Try it in Xnest, or select the Wayland backend for its isolated nested renderer. Keep the direct DRM/KMS session for guarded hardware testing.
git clone https://github.com/kekePower/nobox.git
cd nobox
cmake --preset dev
cmake --build --preset dev
cmake --build --preset test
# Run a disposable nested desktop
Xnest :2 -geometry 1280x800 -ac &
DISPLAY=:2 ./build/dev/cargo/debug/nobox doctor
DISPLAY=:2 ./build/dev/cargo/debug/nobox
DISPLAY=:2 xterm &
# Or verify the native Wayland backend, still nested
./build/dev/cargo/debug/nobox --backend wayland doctor --nested-x11
./build/dev/cargo/debug/nobox --backend wayland run --nested-x11Protocol-neutral behavior lives apart from both display backends. The user-facing nobox command selects an independently linked session executable, while optional settings, panel, XSMP, semantic-helper, and MCP companions stay outside the manager’s failure boundary.
nobox-coreProtocol-neutral focus, stacking, workspaces, geometry, and work areas.
nobox-x11Independent X11 session executable with ownership, client management, EWMH, and XSMP handoff.
nobox-waylandIndependent Smithay compositor with rendering, input, DRM/KMS, protocols, and optional XWayland.
nobox-commonBackend-neutral CLI, autostart, panel, signals, session supervision, and Agent Seat boundaries.
nobox-configStrict TOML models with validated, format-preserving edits.
nobox-desktopBounded XDG desktop-entry discovery and safe application launching.
Compatibility claims, Wayland’s remaining hardware gate, security boundaries, configuration behavior, and agent access are documented alongside the implementation.
GPL-2.0-only. Openbox behavior is studied and tested; the Rust implementation is written independently, contains no unsafe code, and keeps UI toolkits out of the core.
Explore nobox