xfar is a Wayland compositor written in Rust with Smithay. It provides automatic grid tiling, runtime workspaces, and a global launcher. Its only persistent interface is a thin bar containing search, workspace pips, and a clock.
xfar is early-stage and is not marked stable for daily-driver use.
The default build runs nested in an existing X11 or Wayland session:
cargo runThe hardware backend requires seatd, a Linux TTY, and access to /dev/dri:
cargo run --features ttyWith the tty feature enabled, xfar selects DRM/KMS when neither WAYLAND_DISPLAY nor DISPLAY is set. Otherwise it uses the nested winit backend.
Validate configuration without starting the compositor:
cargo run -- validatexfar reads optional TOML from $XDG_CONFIG_HOME/xfar/config.toml, falling back to ~/.config/xfar/config.toml. Every field has a default; unknown sections and keys are rejected.
xfar validate checks parsing, ranges, keybindings, colors, and enumerated values without rewriting the file. The xfar.settings launcher command provides an editable view of the effective configuration and saves valid changes to disk.
The full reference is available from xfar.help in the launcher or in docs/xfar.help.
Development uses a disposable Ubuntu VM managed from macOS. See docs/DEVELOPMENT.md for the full workflow.
brew install --cask multipass
./scripts/vm.sh create
./scripts/vm.sh shell
# Inside the VM:
cd ~/xfar && ./scripts/dev.shDual licensed under Apache License, Version 2.0 or the MIT license, at your option.
