Table of Contents
What Is a Tiling Window Manager?
A tiling window manager (TWM) is a program that controls how application windows are placed and sized on screen. Unlike the floating window model used by Windows, macOS, and most Linux desktop environments โ where windows overlap and you drag them into position manually โ a tiling WM automatically arranges windows in non-overlapping tiles that fill the available screen space.
When you open a second application, the tiling WM splits the screen between the two windows automatically. Open a third and it adjusts all three. Every window gets a defined share of the screen without any manual resizing or repositioning. Navigation between windows, workspaces, and layouts is done entirely through keyboard shortcuts.
The result is a desktop with no wasted screen space, no window overlap, and no mouse required for window management. For people who spend most of their time in a terminal and a browser, this produces a significantly more efficient workflow than a traditional floating desktop.
Why Use One?
The practical advantages of a tiling WM are consistent across setups: every pixel of screen space is used, switching between applications is faster with keyboard shortcuts than with a mouse and taskbar, and the desktop is inherently clean because windows cannot accumulate in disorganized piles.
For desktop aesthetics specifically, tiling WMs produce a visual style that is distinctive and difficult to replicate in a floating environment โ the gap-separated tiled windows, the minimal or absent title bars, and the custom status bar create a look that has become one of the most recognized visual signatures of Linux desktop culture.
The trade-off is the initial investment: you need to learn keyboard shortcuts, read documentation, and configure everything from scratch. There is no graphical settings panel. Everything is text configuration files. The first few days with a tiling WM are usually frustrating; the payoff comes after that initial curve.
i3 โ Best for Beginners
i3 is the most documented, most discussed, and most beginner-accessible tiling WM available. It has been in active development since 2009, has an official manual that covers every feature, and has a community large enough that almost any configuration question has been answered somewhere.
Configuration is done through a single file at ~/.config/i3/config. The syntax is straightforward โ each line is either a key binding, a workspace rule, a startup command, or a visual setting. The default configuration ships with sensible key bindings using the Super key (Windows key) as the modifier, making it usable immediately after installation.
Install i3 on Ubuntu: sudo apt install i3. On Arch: sudo pacman -S i3-wm. Log out and select i3 from your display manager's session list. On first launch, i3 asks you to choose a modifier key โ Super is the standard choice.
Key i3 concepts to learn first: workspaces (virtual desktops, switched with Super+1 through Super+9), layout modes (split horizontal, split vertical, tabbed, stacked), and the scratchpad (a hidden workspace for floating utility windows). The official i3 user guide at i3wm.org covers all of these with examples.
bspwm โ Best for Custom Layouts
bspwm (Binary Space Partitioning Window Manager) takes a different architectural approach than i3. Instead of a monolithic configuration, bspwm is controlled entirely through a socket interface using a command-line tool called bspc. This means the WM itself has no built-in key bindings โ you define all keyboard shortcuts separately using sxhkd (Simple X HotKey Daemon), which reads its own configuration file.
This separation makes bspwm more flexible than i3 for complex setups โ you can script any behavior using bspc commands from shell scripts, and key bindings can execute arbitrary shell commands rather than being limited to built-in WM actions. The trade-off is that the initial setup requires configuring two separate tools (bspwm and sxhkd) before the desktop is functional.
Install on Arch: sudo pacman -S bspwm sxhkd. On Ubuntu: sudo apt install bspwm sxhkd. Copy the example configs: cp /usr/share/doc/bspwm/examples/bspwmrc ~/.config/bspwm/bspwmrc and cp /usr/share/doc/bspwm/examples/sxhkdrc ~/.config/sxhkd/sxhkdrc. Make bspwmrc executable: chmod +x ~/.config/bspwm/bspwmrc.
bspwm's visual aesthetic tends toward very clean gap-separated layouts โ the default look with even gaps between windows and no title bars is one of the most screenshot-friendly configurations in the Linux community.
Hyprland โ Best for Visual Polish
Hyprland is a dynamic tiling Wayland compositor that has become the fastest-growing option in the ricing community. Unlike i3 and bspwm, which run on X11, Hyprland runs on Wayland โ the modern display protocol that is gradually replacing X11 on Linux. It combines the window manager and compositor into a single program, which means blur, animations, rounded corners, and other visual effects are built in rather than requiring a separate compositor like Picom.
The visual result is noticeably more polished than i3 or bspwm out of the box โ smooth window animations, rounded corners, and gaussian blur on floating windows and the status bar are all available through configuration without any additional tools. For users who prioritize aesthetics alongside functionality, Hyprland currently produces the most visually refined tiling setups.
Install on Arch (the primary supported distribution): sudo pacman -S hyprland. On other distributions, check the Hyprland wiki for distribution-specific instructions โ support varies. The configuration file lives at ~/.config/hypr/hyprland.conf and uses a custom key=value syntax that is well-documented on the Hyprland wiki.
Note that Wayland compatibility with some applications โ particularly older games and certain screen sharing scenarios โ is still improving. If you rely on applications with known Wayland issues, verify compatibility before switching.
Side-by-Side Comparison
Display protocol: i3 and bspwm use X11; Hyprland uses Wayland.
Configuration: i3 uses a single config file with its own syntax; bspwm uses two files (bspwmrc shell script + sxhkdrc); Hyprland uses a single config file with key=value syntax.
Visual effects: i3 and bspwm require Picom for blur, transparency, and animations; Hyprland has these built in.
Community and documentation: i3 has the largest community and most documentation; bspwm has a strong ricing community with extensive dotfile examples; Hyprland has rapidly growing documentation and community.
Learning curve: i3 is the gentlest entry point; bspwm requires understanding the two-tool architecture; Hyprland requires familiarity with Wayland concepts.
Best for: i3 โ beginners and anyone who values stability and documentation; bspwm โ users who want maximum scripting flexibility; Hyprland โ users who prioritize visual polish and are on Arch or a supported distribution.
Getting Started: First Steps
Regardless of which WM you choose, the first hour with a tiling WM follows the same pattern. Install the WM and a terminal emulator (Alacritty or Kitty). Log into the WM session. Open a terminal. From there, install everything else through the terminal โ a browser, a file manager, a status bar.
Do not try to replicate your previous desktop immediately. Start with the default configuration and learn the key bindings first. Add customization one element at a time: first get the key bindings working for your workflow, then configure the status bar, then adjust colors and fonts, then add gaps and visual effects. Changing everything simultaneously makes it impossible to diagnose what is causing any issue.
Keep a second terminal open with your WM's documentation or the official wiki. Every time you want to change something, find the relevant configuration option before editing the file. This prevents the common pattern of making multiple changes at once and not knowing which one broke something.
Wallpaper in a Tiling Setup
Wallpaper management in a tiling WM is not automatic โ there is no desktop environment to set it for you. On X11 (i3 and bspwm), use feh: add feh --bg-scale /path/to/wallpaper.jpg & to your WM's autostart file. On Wayland (Hyprland), use swww or swaybg: add swww img /path/to/wallpaper.jpg to your hyprland.conf exec-once section.
For Pywal integration โ automatic color scheme generation from your wallpaper โ replace the feh command with wal -i /path/to/wallpaper.jpg. This sets the wallpaper and generates a matching color scheme for your terminal and other configured applications simultaneously.