Openbox-class window management
Reparenting frames, titlebars, move and resize, edge snapping, focus handling, and crash-safe client adoption.
A small, predictable, Openbox-inspired window manager that stays out of your way. No desktop environment, no compositor requirement, and no toolkit in the core.
Openbox is the behavioral reference, not a dependency. nobox recreates the dependable stacking-window-manager experience with a deliberately separated Rust architecture and regression-by-regression compatibility evidence.
Reparenting frames, titlebars, move and resize, edge snapping, focus handling, and crash-safe client adoption.
ICCCM and EWMH behavior for pagers, panels, struts, urgency, window types, fullscreen, shading, and stacking.
Bindings, menus, workspaces, themes, and application rules live in one validated file. Typos fail loudly.
RandR-aware placement, maximize, fullscreen, and work areas recover safely when an output disappears.
Nested menus, XDG application discovery, live window and workspace lists, and bounded command-generated menus.
The core stays toolkit-free, protocol policy stays separate from X11, and the workspace 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. The boundary is part of the window manager, 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.
The X11 baseline is feature-complete, but the implementation is new. Build it, run the checks, and learn its behavior in Xnest before replacing a real session.
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 &Protocol-neutral behavior lives apart from the X11 backend, leaving room for a future native Wayland compositor without turning X11 into the internal model. Optional settings, panel, session, and MCP companions stay separate processes.
nobox-coreProtocol-neutral focus, stacking, workspaces, geometry, and work areas.
nobox-x11X11 ownership, event handling, client management, and EWMH plumbing.
nobox-configStrict TOML models with validated, format-preserving edits.
nobox-desktopBounded XDG desktop-entry discovery and safe application launching.
Compatibility claims, acceptance 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 and contains no unsafe code.
Explore nobox