| oxwm | removing tabbed not avail | |
| screenshots | update with added banter | |
| .gitignore | update with added banter | |
| install.sh | update with added banter | |
| README.md | update with added banter | |
🪟 oxwm-setup
Made for Debian OXWM Version Themes Stars Forks Last Commit
A dynamic X11 window manager setup for Debian-based systems.
oxwm is dwm-like, but configured in Lua with instant hot-reload — edit config.lua, press Mod+Shift+R, no recompile. This setup ships dwm-style keybinds, a GitHub-Dark-styled bar, and a 6-theme switcher.
Part of the JustAGuy Linux window manager collection — installable standalone or via butterknife, the installer for Butterbian.
🎩 Built by Tony Banters
oxwm is the work of Tony Banters — go watch and subscribe to his channel: ▶ YouTube . Hands down one of the most devoted, card-carrying, dyed-in-the-wool Debian fans you'll ever meet.1
1 He is not. He recently dropped a whole video rating Debian a resounding "meh." We kid — it's all banter. 🧈
⚡ Lua-Configured, Hot-Reloaded
Unlike suckless WMs, there's nothing to patch or compile:
- One file —
~/.config/oxwm/config.luaholds everything (keybinds, bar, rules, layouts). - Instant reload —
Mod+Shift+Rre-reads the config live; tags and windows are preserved. - Validate before you commit —
oxwm --validatechecks the config without launching.
🚀 Installation
Quick Install
git clone https://codeberg.org/justaguylinux/oxwm-setup.git
cd oxwm-setup
chmod +x install.sh
./install.sh
The installer adds butterrepo and installs oxwm with apt — no building required.
⚠️ XLibre users: This script installs
xorgas part of its core packages, which will replace XLibre if you've installed it. RemovexorgfromPACKAGES_COREininstall.shbefore running, or use--only-configto skip package installation entirely.
Installation Options
./install.sh [OPTIONS]
Options:
--only-config Only copy config files (skip packages and external tools)
--help Show usage information
Distribution-Agnostic Installation
⚠️ UNSUPPORTED: Instructions for other distributions (click to expand)
IMPORTANT: These instructions are provided as-is for advanced users. Non-Debian distributions are NOT officially supported. Package names and availability may vary. Use at your own risk.
oxwm is distributed as a .deb via butterrepo, so on non-Debian systems you build it yourself:
- Build and install oxwm from source: github.com/tonybanters/oxwm
- Install the equivalent runtime packages with your distro's package manager (see the tables below).
- Run
./install.sh --only-configto copy the configuration into~/.config/oxwm. - Install Nerd Fonts (RobotoMono + JetBrainsMono) and, optionally, the Orchis GTK / Colloid icon themes for the theme switcher.
Note: The script can be run from any location — it auto-detects its directory.
What Gets Installed
- System Update — updates package lists and upgrades existing packages
- butterrepo — adds the APT repo that provides
oxwm,picom, androfi - oxwm — the window manager itself (
apt install oxwm) - Core / UI / System packages — X11, file manager, audio, power management
- External Tools — via butterscripts:
- WezTerm (terminal emulator)
- Nerd Fonts collection
- Orchis theme & Colloid icons
- LightDM display manager
- Wallpapers — cloned from drewgrif/wallpapers
- Optional Tools — additional browsers, editors, and utilities (prompted)
📦 What It Installs
Core Components
| Component | Purpose |
|---|---|
oxwm |
Lua-scriptable X11 window manager (from butterrepo) |
xdotool |
Drives the theme-switch reload |
xorg & tools |
Display server and utilities |
dbus-x11 libnotify-bin |
Session bus + notifications |
build-essential |
Compilation tools |
UI & System Tools
| Component | Purpose |
|---|---|
rofi |
App launcher + theme/power menus |
dunst |
Lightweight notifications |
feh |
Wallpaper setter |
picom |
Compositor with transparency |
nwg-look |
GTK theme manager |
xsettingsd |
Applies GTK theme/icons live |
network-manager-gnome |
Network applet |
lxpolkit |
PolicyKit authentication agent |
thunar |
File manager (+plugins) |
pavucontrol pamixer |
Audio control + CLI volume |
xfce4-power-manager |
Power management |
flameshot |
Screenshot tool |
qimgv |
Lightweight image viewer |
firefox-esr |
Default web browser |
External Tools (via butterscripts)
| Component | Purpose |
|---|---|
wezterm |
Default terminal emulator |
| Nerd Fonts | Icon-enabled fonts (RobotoMono, JetBrainsMono) |
| Orchis & Colloid | GTK theme and icons |
| LightDM | Display manager |
💡
stis also bundled in this repo (oxwm/st/) if you prefer it — setoxwm.set_terminal("st")inconfig.lua.
🎨 Appearance & Theming
💡 Special thanks to vinceliuice for the excellent GTK and icon themes.
🔑 Keybindings Overview
All keybinds live in ~/.config/oxwm/config.lua and are hot-reloadable with Mod+Shift+R — no recompile, no separate hotkey daemon. Open the built-in cheatsheet anytime with Super + Shift + /.
| Shortcut | Action |
|---|---|
Super + Return |
Launch terminal (WezTerm) |
Super + Space |
Launch rofi (drun) |
Super + b |
Firefox |
Super + f |
Thunar |
Super + Shift + t |
Theme switcher (rofi) |
Super + Shift + e |
Power menu (rofi) |
Super + Shift + / |
Keybind overlay |
Super + q |
Close focused window |
Super + j / k |
Focus next / previous window |
Super + Shift + j / k |
Move window down / up in stack |
Super + h / l |
Shrink / grow master area |
Super + Alt + Tab |
Fewer / more master windows (+Shift) |
Super + Shift + Space |
Toggle floating (opens centered) |
Super + Shift + f |
Toggle fullscreen |
Super + Ctrl + b |
Toggle bar |
Super + n |
Cycle layout |
Shift + Ctrl + 1..7 |
Pick layout: dwindle / tiling / scrolling / grid / monocle / tabbed / floating |
Super + [ / ] |
Scroll left / right (scrolling layout) |
Super + 1..9 |
View tag 1..9 |
Super + Shift + 1..9 |
Send focused window to tag |
Super + Ctrl + 1..9 |
Toggle tag visibility |
Super + Tab |
Next tag (Shift = previous) |
Super + , / . |
Previous / next tag |
Ctrl + Shift + ← / → |
Focus previous / next monitor |
Super + Shift + , / . |
Send window to prev / next monitor |
Super + Shift + s / s |
Flameshot region / fullscreen |
Super + F10 / F11 / F12 |
Mute / volume down / volume up |
Super + Shift + r |
Reload oxwm (preserves tags/windows) |
Super + Shift + q |
Quit oxwm |
On first login, a quickstart cheat sheet lands at ~/QUICKSTART-oxwm.md (if present) — delete it once you're comfortable.
🧱 Layouts
Cycle with Super + n, or pick directly with Shift + Ctrl + 1..7:
| # | Layout | Description |
|---|---|---|
| 1 | Dwindle | Fibonacci spiral (default) |
| 2 | Tiling | Master + stack |
| 3 | Scrolling | PaperWM-style horizontal strip — pan with Super + [ / ] |
| 4 | Grid | Even grid |
| 5 | Monocle | One full-screen window at a time |
| 6 | Tabbed | Stacked/tabbed |
| 7 | Floating | Free-floating ("normie") |
🎭 Theme System
6 themes ship under oxwm/themes/ — github_dark (default), gruvbox, catppuccin, dracula, everforest, retro. Each theme is a directory of:
colors.lua— the oxwm bar + border palette (dofiled byconfig.lua)colors.rasi—@imported by the rofi configstheme.conf— wallpaper, WezTerm scheme, GTK/icon theme names, dunst colors
Super + Shift + t opens thememenu (rofi). Picking a theme:
- Copies
colors.lua→ active palette andcolors.rasi→ active rofi colors - Sets the WezTerm color scheme (auto-reloads) and GTK theme/icons (via xsettingsd)
- Rewrites the
# THEME:-tagged dunst colors and restarts dunst - Sets the wallpaper with
feh - Presses
Mod+Shift+R(via xdotool) so oxwm re-reads the new palette
The active theme is tracked in ~/.cache/oxwm/current_theme. Add a theme by creating themes/<name>/ with colors.lua, colors.rasi, and theme.conf.
📂 Configuration Files
~/.config/oxwm/
├── config.lua # Everything: keybinds, bar, rules, layouts (edit this)
├── colors.lua # Active palette (generated; seeded from themes/github_dark)
├── themes/ # Per-theme colors.lua + colors.rasi + theme.conf
│ └── <name>/
├── rofi/
│ ├── config.rasi # Launcher / theme-menu theme
│ ├── power.rasi # Power-menu theme
│ └── colors.rasi # Active palette (@imported; replaced on theme switch)
├── dunst/
│ └── dunstrc # Notifications (# THEME: lines rewritten on theme switch)
├── picom/
│ └── picom.conf # Compositor configuration
├── st/ # Bundled st terminal (optional alternative to WezTerm)
├── scripts/
│ ├── thememenu # Theme switcher (Super + Shift + t)
│ ├── changevolume # Volume up/down/mute with notification
│ └── power # Power-menu actions
└── wallpaper/ # Cloned from drewgrif/wallpapers at install time
~/.config/wezterm/
└── wezterm.lua # Terminal configuration (color scheme set by theme switch)
License
GPL-3.0 — See the GNU GPL v3 for details, matching upstream oxwm.
Support
Connect
- YouTube — tutorials and guides
- Codeberg — source code and projects
- The Butter Lab — Discourse forum
- The Churn — community chat (Fluxer)
- Wiki — documentation and guides
- Mastodon — @justaguylinux@fosstodon.org
- Butterbian — a Debian-based distro
Made with butter by JustAGuyLinux