Qtile Window Manager
This document describes the Qtile window manager configuration, a dynamic tiling window manager written in Python. It has been extensively customized for optimal performance with Wayland and NixOS, integrating seamlessly with the Juna theming system to provide a consistent and dynamic visual experience.
Why Qtile?
- Python-powered: Easily extensible and customizable.
- Wayland backend: Utilizes a modern, experimental Wayland backend, offering smooth rendering, enhanced security, and improved input handling.
- Keyboard-centric: Designed for complete keyboard control, promoting speed and focus.
- Dynamic tiling: Windows automatically arranged for maximum efficiency.
Key Config Details
Mod Key and Core Applications
mod4(Super/Windows key) as the main modifier.- Terminal:
footclient. - Browser:
firefox. - Launcher:
fuzzelfor app launching. - File manager:
thunar. - Editor:
nviminsidefootclient. - Notification center:
swaync-client.
Autostart Hooks
On startup, the configuration launches essential services and utilities to ensure system readiness and smooth operation:
systemctl --user restart pipewire— Audio server for sound managementsystemctl --user restart app-com.mitchellh.ghostty.service— Ghostty terminal serviceblueman-applet— Bluetooth tray applet for easy device controludiskie— Automatic mounting for removable drivesflameshot— Screenshot tool ready to capture on demandfocus-mode— Custom script to minimize distractions and enhance productivitympDris2&mpd-notify— MPD integration for notifications and media controls
If running on Wayland:
systemctl restart --user wlsunset.service— Day/night light filterfoot --server— Start Foot terminal server for Wayland native terminalswww-daemon&wallrandom— Wallpaper daemon and randomizer scriptswaync— Notification daemon
If host is desktop:
firefox— Launch browserdiscord --disable-gpu— Start Discord with GPU acceleration disabled for stability
Fullscreen Rules
Certain applications like flameshot automatically open fullscreen to avoid interruptions.
Keybindings Breakdown
- Navigation:
mod + h/j/k/lto move focus left/down/up/right. - Window shuffle:
mod + shift + h/j/k/lmoves windows around. - Resize:
mod + ctrl + j/kto shrink or grow windows. - Toggle fullscreen:
mod + f. - Toggle floating:
mod + shift + space. - Spawn terminal, browser, launcher, file manager, editor, with easy combos.
- Volume, brightness, media keys mapped for quick control.
Groups & Workspaces
-
Numeric groups
0-9plus a scratchpad with dropdowns for Music (rmpc) and terminal. -
Specific matching rules send apps to designated groups automatically:
- Browsers (Firefox, Vivaldi, Librewolf, Brave) go to group 2.
- Obsidian notes app to group 4.
- Discord to group 9.
- Steam to group 0.
-
Keybindings let you switch groups or move windows between them.
Layouts
- MonadTall for tiling — clean and efficient vertical stacking.
- Max for fullscreen applications.
Widgets & Bar
- Stylish powerline decorations with custom colors matching the active theme.
- Shows current group, layout, window name, search box, system tray, memory, battery (on laptop), volume, keyboard layout, and clock.
- Interactive logo that opens the NixOS Wiki on click.
Mouse Controls
- Drag floating windows with
mod + left-clickor resize withmod + right-click. - Bring window to front with
mod + middle-click.
Additional Config
- Wayland input settings tuned for flat acceleration profiles.
- Custom cursor theme
Nordzy-cursors. wmnameset toQTILEfor Java UI compatibility.