fluxbox-wayland is a wlroots-based Wayland compositor with Fluxbox-like policy (root menu, key/mouse bindings, workspaces, theming, lightweight).
This repo is BETA: full Wayland compatibility with an explicit 1:1 Fluxbox/X11 config parity target (still stabilizing).
fluxbox-waylandis a compositor, not an X11 window manager running “on top of” Wayland.- It manages native Wayland
xdg_toplevelapps and can optionally run X11 apps via XWayland. - Classic Fluxbox config formats are intentionally reused with an explicit 1:1 parity target (see “Fluxbox/X11 parity” below).
The core goal is that classic ~/.fluxbox/ configs “just work” under Wayland, with Fluxbox-like behavior and command
semantics.
Parity coverage includes:
- Startup / CLI: Fluxbox-style
-rc <init-file>semantics (including relative path resolution),-no-toolbar,-no-slit. - Bindings + cmdlang: Fluxbox key/mouse binding formats and cmdlang parsing/semantics (including
If/ForEach, and per-bindingToggleCmd/Delaystatefulness). - Menus: root menu + client menu behavior (including escaping, icons, and menu search/type-ahead).
- Workspaces: add/remove/name, navigation, and workspace warping behavior.
- Focus / stacking policy: click-raise/click-focus, focus models, directional focus, MRU cycling, auto-raise delay behavior.
- Move/resize/maximize: keyboard and pointer move/resize; maximize/fullscreen; common edge-snap behaviors.
- Apps rules: Fluxbox
appsfile rules (matching + placement + decoration flags + tabbing-related rules). - Tabs UI: attach areas, mouse focus behavior, and tab command parity.
- Toolbar: tools ordering and theming;
autoHide,autoRaise,maxOver,layer, per-screen overrides. - Slit: direction + ordering + autosave;
autoHide,autoRaise,maxOver; menu behavior; KDE dockapp handling (best-effort under XWayland). - Styles / themes: Fluxbox texture engine (gradients/pixmaps/
ParentRelative), per-element theming for menus/toolbar/slit/window decorations, font effects, and common shape keys (bevel/rounded corners) on supported UI components.
Docs:
- Man pages:
doc/fluxbox-wayland.1.in,doc/startfluxbox-wayland.1.in - Smoke tests (deterministic, non-interactive):
scripts/fbwl-smoke-all.sh
All screenshots below are tracked in git under docs/screenshots/ so GitHub can render them directly.
There is also a standalone HTML gallery at docs/screenshots/index.html (works locally; can be served via GitHub Pages).
- Build:
./autogen.sh && ./configure --enable-wayland && make -j(or Wayland-only:./configure --disable-x11 --enable-wayland) - Run (recommended):
util/startfluxbox-wayland - Smoke tests:
- Main suite:
scripts/fbwl-smoke-all.sh(SSH/headless-friendly; includes Xvfb/XWayland coverage where available) - CI helper:
scripts/fbwl-smoke-ci.sh(same suite, but skips individual tests when host deps are missing) - Toolbar parity:
scripts/fbwl-smoke-toolbar-autohide.sh,scripts/fbwl-smoke-toolbar-autoraise.sh,scripts/fbwl-smoke-toolbar-maxover.sh
- Main suite:
To regenerate screenshots in docs/screenshots/:
FBWL_SMOKE_REPORT_DIR=docs/screenshots scripts/fbwl-smoke-left-click-menu.shFBWL_SMOKE_REPORT_DIR=docs/screenshots scripts/fbwl-smoke-tabs-ui-click.shFBWL_SMOKE_REPORT_DIR=docs/screenshots scripts/fbwl-smoke-style.shFBWL_SMOKE_REPORT_DIR=docs/screenshots scripts/fbwl-smoke-style-textures.shFBWL_SMOKE_REPORT_DIR=docs/screenshots scripts/fbwl-smoke-window-alpha.shFBWL_SMOKE_REPORT_DIR=docs/screenshots scripts/fbwl-smoke-pseudo-transparency.sh