dxdWM - a custom small x11 window manager
- Rust 96%
- Shell 4%
| scripts | ||
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| README.md | ||
dxdwm
WARNING: VIBECODED :3
dxdwm is a small X11 window manager written in Rust.
What it does
- Becomes the active X11 window manager via
SubstructureRedirect. - Manages top-level windows and keeps them focusable/raiseable.
- Default launcher keybind: Super (Windows key) runs:
rofi -show drun
- Terminal keybind: Alt+Enter runs:
alacritty
- Window control keybinds:
Alt+Qcloses the focused window.Alt+Wcycles focus through managed windows (tab-like).Alt+Spacetoggles between floating mode and single-window tabbed mode.
- Mouse bindings:
Alt + Left Mouse Dragmoves windows.Alt + Right Mouse Dragresizes windows.
Project layout
Cargo.toml- dependency manifest.src/main.rs- window manager implementation.scripts/run_xephyr.sh- optional nested X11 runner for Linux.
Notes
- This is intended for X11 Linux sessions.
- On macOS, this can be edited but not realistically run as an X11 session WM.
rofimust be installed and inPATHfor the launcher binding.DXDWM_LAUNCHERcan override launcher command (default:rofi -show drun).DXDWM_TERMINALcan override terminal command (default:alacritty).- On startup, dxdwm runs
$HOME/.config/dxdwm/dxdwm.sh; it is auto-created if missing.
License
GPL-3.0-only
Build (Linux/X11 host)
cargo build --release
Run from tty via startx (standalone WM)
Create ~/.xinitrc:
#!/usr/bin/env sh
export PATH="$HOME/.cargo/bin:/usr/local/bin:/usr/bin:/bin"
# Optional overrides:
# export DXDWM_TERMINAL="kitty"
# export DXDWM_LAUNCHER="rofi -show drun"
exec /absolute/path/to/dxdwm/target/release/dxdwm
Then from a Linux tty (not from inside another WM):
chmod +x ~/.xinitrc
startx
Run as WM from an existing X session
exec /absolute/path/to/dxdwm/target/release/dxdwm
Quick input checks
Inside dxdwm, verify:
Alt + Left Mouse Dragmoves windows.Alt + Right Mouse Dragresizes windows.Alt + Enterlaunches your terminal.- Pressing
Superlaunches your app launcher.
Optional nested run (Linux with Xephyr)
./scripts/run_xephyr.sh