A complete Qtile setup script for Debian-based systems.
Features dynamic tiling layouts, powerful keybindings, and a polished desktop experience β ready to roll out of the box.
Part of the JustAGuy Linux window manager collection.
This installer uses pipx
to install Qtile. Here's why:
- Latest Version: Qtile is not yet available in Debian stable repositories (coming in the next release)
- Easy Updates: With pipx, you can always update to the latest Qtile version using
pipx upgrade qtile
- Isolated Environment: pipx automatically creates a virtual environment, preventing conflicts with system Python packages
- Future-Proof: Even when Qtile arrives in Debian repos, pipx will allow you to use newer versions if desired
- apt install qtile: Will be available in future Debian releases, but will lag behind in features
- pip install --user: Works but less isolated than pipx
- Manual virtual environment: More complex, essentially what pipx does automatically
The installer keeps things simple and reliable by using pipx, which handles all the Python dependency management automatically.
git clone https://github.com/drewgrif/qtile-setup.git
cd qtile-setup
chmod +x install.sh
./install.sh
./install.sh [OPTIONS]
Options:
--skip-packages Skip apt package installation
--skip-themes Skip theme, icon, and font installations
--skip-butterscripts Skip all external script installations
--dry-run Show what would be done without making changes
--only-config Only copy config files (skip all installations)
--help Show usage information
# Preview what will be installed
./install.sh --dry-run
# Update only configuration files
./install.sh --only-config
# Skip package installation if already installed
./install.sh --skip-packages
# Install without themes and fonts
./install.sh --skip-themes
Component | Purpose |
---|---|
qtile |
Dynamic tiling window manager |
python3-psutil |
System monitoring for qtile |
rofi |
App launcher + power menu |
dunst |
Lightweight notifications |
picom (FT-Labs) |
Compositor with transparency |
thunar |
File Manager (+plugins) |
wezterm |
Main terminal emulator |
firefox-esr |
Default web browser |
flameshot |
Screenshot tools |
pamixer |
Audio control |
feh |
Wallpaper manager |
xfce4-power-manager |
Power management |
network-manager-gnome |
Network management |
micro |
Terminal text editor |
nala |
Better apt frontend |
qimgv |
Lightweight image viewer |
π‘ Special thanks to vinceliuice for the excellent GTK and icon themes.
Main keybindings are configured in ~/.config/qtile/config.py
Launch the keybind cheatsheet anytime with:
~/.config/qtile/scripts/help
Shortcut | Action |
---|---|
Super + Enter |
Launch terminal (WezTerm) |
Super + Space |
Launch rofi |
Super + H |
Open keybind help via Rofi |
Super + Q |
Close focused window |
Super + Ctrl + R |
Restart Qtile |
Super + Tab |
Cycle through layouts |
Super + 1β9,0,-,= |
Switch to workspace (1-12) |
Super + Shift + 1β9,0,-,= |
Move window to workspace (1-12) |
Super + J/K |
Move focus up/down |
Super + Shift + J/K |
Move window up/down |
Super + H/L |
Shrink/expand window |
Cycle layouts using:
Super + Tab
Click to expand layout descriptions
Available layouts in this configuration (6 total):
BSP
β Binary space partitioning (default)Columns
β Dynamic column layout (3 columns)MonadTall
β Classic master-stackMax
β Fullscreen stacked windowsFloating
β Free window placementZoomy
β Zoom-focused layout
~/.config/qtile/
βββ config.py # Main Qtile configuration
βββ colors.py # Color scheme definitions
βββ scripts/
βββ autostart.sh # Startup script
βββ changevolume # Volume control script
βββ help # Keybind help viewer
βββ power # Power menu script
~/.config/dunst/
βββ dunstrc # Notification settings
~/.config/picom/
βββ picom.conf # Compositor configuration
~/.config/rofi/
βββ config.rasi # Main rofi configuration
βββ keybinds.rasi # Keybind cheatsheet theme
βββ power.rasi # Power menu theme
~/.config/qtile/wallpaper/ # Collection of wallpapers
This configuration includes:
- Dynamic Layouts: Multiple tiling algorithms with easy switching
- Smart Borders: Borders only when needed
- System Tray: Integrated system tray in the status bar
- Workspace Management: 12 workspaces with intuitive navigation
- Auto-floating: Certain windows automatically float (dialogs, etc.)
- Status Bar: Custom status bar with system information
- Notifications: Desktop notifications via dunst
- Power Management: Integrated power menu and battery monitoring
The configuration includes a curated collection of wallpapers in ~/.config/qtile/wallpaper/
:
- High-resolution ultrawide wallpapers (3440x1440)
- Gruvbox-themed backgrounds
- Debian-branded wallpapers
- Nature and abstract designs
Want to see how it looks and works?
π₯ Check out JustAGuy Linux on YouTube