# Qtile — Hackable Tiling Window Manager Written and Configured in Python > A full-featured tiling window manager for X11 and Wayland that uses Python for configuration and extension. ## Install Save in your project root: # Qtile — Hackable Tiling Window Manager Written and Configured in Python ## Quick Use ```bash pip install qtile # Or via package managers sudo apt install qtile # Debian/Ubuntu sudo pacman -S qtile # Arch # Start with X11 startx qtile # Or select Qtile from your display manager ``` ## Introduction Qtile is a tiling window manager for Linux written entirely in Python. Its configuration is a Python script, giving users the full power of the language to define layouts, key bindings, widgets, and custom behavior without learning a separate configuration DSL. ## What Qtile Does - Manages windows using tiling, floating, and stacking layouts - Runs on both X11 and Wayland backends - Configures entirely through a Python script (~/.config/qtile/config.py) - Provides a built-in bar with extensible widgets for system info - Supports hot-reloading configuration without restarting ## Architecture Overview Qtile is a single Python process that interfaces with X11 via xcffib or Wayland via wlroots bindings. Layouts, key bindings, and widgets are Python objects registered at startup. The event loop dispatches window and input events to the appropriate handlers, and lazy evaluation defers actions until key or mouse events fire. ## Self-Hosting & Configuration - Install via pip, system package managers, or from source - Configuration lives in ~/.config/qtile/config.py as standard Python - Layouts, key bindings, and groups are defined as Python lists - Custom widgets can be written as Python classes extending base.Widget - Test configuration changes with `qtile check` before applying ## Key Features - Python-native configuration with full language access - X11 and Wayland support from the same codebase - Built-in bar with clock, CPU, memory, battery, and volume widgets - IPC interface for scripting and external tool integration - Layout system includes columns, monad-tall, matrix, floating, and more ## Comparison with Similar Tools - **i3/Sway** — config file DSL; Qtile uses Python for more expressive configuration - **Hyprland** — Wayland-only, C++; Qtile supports both X11 and Wayland in Python - **AwesomeWM** — Lua configuration; Qtile offers Python for those who prefer it - **xmonad** — Haskell-based; Qtile has a lower learning curve with Python - **bspwm** — external scripting via bspc; Qtile embeds logic directly in config ## FAQ **Q: Does Qtile work on Wayland?** A: Yes. Qtile has a Wayland backend using wlroots. **Q: Can I use floating windows?** A: Yes. Qtile supports floating layout and per-window float rules. **Q: How do I reload my config without restarting?** A: Press the configured reload key (default: Mod+Ctrl+R) for hot reload. **Q: Is Qtile suitable for multi-monitor setups?** A: Yes. Qtile supports multiple screens with independent groups per monitor. ## Sources - https://github.com/qtile/qtile - https://docs.qtile.org/ --- Source: https://tokrepo.com/en/workflows/asset-c8e37997 Author: AI Open Source