Linux Window Managers
A window manager is only one layer of a graphical session. X11 and Wayland organize this layer differently, so comparisons between i3, Sway, Hyprland or KWin should distinguish a classic window manager from a compositor.
Related topics: Popular Linux Distributions and Debian Desktop and Server.
1. What is a window manager?
A window manager (WM) controls application windows: placement, size, focus, stacking order, borders, workspaces and keyboard-driven window operations.
A window manager is not the whole desktop. It is one layer of the graphical session.
2. Window Manager vs Desktop Environment
Window Manager
A standalone window manager usually provides:
- window placement,
- focus,
- workspaces,
- keyboard shortcuts,
- basic rules.
You normally add the rest yourself: panel, launcher, notifications, lock screen, wallpaper, network applet and other tools.
Desktop Environment
A desktop environment (DE) is a complete integrated desktop.
Examples:
GNOME → Mutter
KDE Plasma → KWin
XFCE → Xfwm
A DE contains a window manager/compositor plus settings, panels, session management, file integration and utilities.
3. X11 and Wayland
X11
Under X11, the X server and window manager are separate components.
Typical X11 WMs include:
- i3,
- bspwm,
- AwesomeWM,
- XMonad,
- dwm,
- Openbox,
- Fluxbox,
- IceWM.
X11 is mature and compatible with a huge amount of software, but its architecture is old and its security/isolation model is weaker.
Wayland
Under Wayland, the compositor usually also acts as the window manager and display server.
Typical Wayland compositors include:
- Sway,
- Hyprland,
- River,
- Wayfire,
- Labwc,
- KWin,
- Mutter.
X11 applications can usually run through XWayland.
4. Floating vs Tiling
Floating Window Manager
Floating WMs behave like classic desktop systems.
Windows overlap and can be freely moved and resized.
Examples:
- Openbox,
- IceWM,
- KWin in its default mode,
- Mutter,
- Xfwm.
Tiling Window Manager
Tiling WMs automatically arrange windows so they do not overlap.
This is useful for keyboard-centric work, terminals and multi-monitor setups.
5. Dynamic and manual tiling
Manual tiling
The user explicitly decides how the workspace is split.
i3 and Sway are good examples.
Dynamic tiling
A layout algorithm automatically determines window placement.
Examples include dwm, AwesomeWM and some Hyprland workflows.
6. i3
i3 is one of the best-known X11 tiling window managers.
Character
It is:
- simple,
- predictable,
- keyboard-oriented,
- well documented,
- excellent for learning tiling concepts.
Debian installation
sudo apt update
sudo apt install i3
You can choose i3 from the display manager session menu.
Configuration
Default configuration:
~/.config/i3/config
or on older setups:
~/.i3/config
Reload after changes:
Mod+Shift+r
Typical shortcuts
Common defaults:
Mod+Enter terminal
Mod+d launcher
Mod+Shift+q close window
Mod+1..9 workspace
Mod+Shift+1..9 move window to workspace
Mod+h/j/k/l focus
Mod+Shift+h/j/k/l move window
The exact Mod key is usually Super/Windows or Alt.
Advantages
- easy to understand,
- stable configuration,
- lightweight,
- huge amount of examples online,
- good stepping stone to Sway.
Disadvantages
- X11 only,
- visual effects are minimal,
- some desktop conveniences need separate tools.
7. Sway
Sway is an i3-compatible Wayland compositor.
Installation
On Debian:
sudo apt install sway
Availability and package freshness depend on the Debian release.
Configuration
~/.config/sway/config
A large part of i3 configuration syntax transfers directly.
Typical set
A practical Sway desktop often includes:
Sway
Waybar
foot / Alacritty
mako
wofi / bemenu
swaylock
swaybg
grim + slurp
wl-clipboard
Advantages
- Wayland,
- familiar for i3 users,
- simple and stable mental model,
- good keyboard workflow.
Disadvantages
- some X11-era utilities need Wayland alternatives,
- NVIDIA behavior depends on driver/platform state,
- visual customization is less flashy than Hyprland.
8. Hyprland
Hyprland is a modern Wayland compositor focused on dynamic tiling, animation and visual customization.
Character
It combines:
- tiling,
- floating,
- animations,
- workspace effects,
- extensive configuration,
- a large community ecosystem.
Configuration
Typical location:
~/.config/hypr/hyprland.conf
Larger setups often split configuration into several files.
Typical set
Hyprland
Waybar
hyprlock
hypridle
wofi / rofi-wayland
mako / swaync
kitty / foot
grim + slurp
wl-clipboard
Advantages
- modern Wayland stack,
- polished animations,
- flexible window rules,
- strong customization.
Disadvantages
- configuration changes more often than in mature i3,
- many community dotfiles are unnecessarily complex,
- beginners can spend more time decorating than learning the workflow.
9. bspwm
bspwm is an X11 tiling window manager built around a binary-space-partition tree.
Architecture
bspwm focuses on window management.
Keyboard shortcuts are typically handled separately by:
sxhkd
This separation makes the system highly modular.
Configuration
Common files:
~/.config/bspwm/bspwmrc
~/.config/sxhkd/sxhkdrc
Advantages
- clean architecture,
- scriptable through
bspc, - easy to combine with external tools.
Disadvantages
- X11 only,
- requires more assembly than i3,
- shortcuts and WM configuration live in separate components.
10. AwesomeWM
AwesomeWM is a dynamic X11 window manager configured in Lua.
Configuration
~/.config/awesome/rc.lua
Advantages
- extremely programmable,
- Lua configuration,
- built-in widgets and panels,
- dynamic layouts.
Disadvantages
- configuration is effectively programming,
- easier to over-engineer than i3.
11. XMonad
XMonad is a tiling window manager written and configured in Haskell.
Configuration
Typically:
~/.xmonad/xmonad.hs
Character
XMonad treats desktop configuration almost like a program.
Advantages
- powerful layout model,
- highly extensible,
- stable architecture.
Disadvantages
- Haskell creates a high entry barrier,
- troubleshooting configuration may require understanding compilation errors.
12. dwm
dwm is the suckless project's minimalist dynamic window manager.
Most important difference
Configuration is largely done by editing C source and recompiling.
Typical workflow:
edit config.h
→ compile
→ install
→ restart dwm
Extensions
The ecosystem uses patches rather than a conventional plugin system.
Advantages
- tiny,
- fast,
- simple source code,
- excellent for understanding how a WM works.
Disadvantages
- source-level configuration,
- patch management becomes your responsibility,
- X11 only.
13. Qtile
Qtile is a tiling WM configured in Python.
Configuration
~/.config/qtile/config.py
Example
A simplified key binding concept:
Key([mod], "Return", lazy.spawn("foot"))
Advantages
- Python configuration,
- good for users who already know Python,
- flexible layouts and widgets.
Disadvantages
- configuration errors are Python errors,
- Wayland support and features may differ from X11 depending on version.
14. Openbox
Openbox is a classic lightweight floating X11 window manager.
Character
It gives a traditional desktop experience without a full DE.
Configuration
Typical directory:
~/.config/openbox/
Advantages
- light,
- mature,
- easy to combine with panels and launchers.
Disadvantages
- X11 only,
- project/ecosystem is less central today than modern Wayland options.
15. Fluxbox
Fluxbox is another lightweight traditional X11 WM.
Advantages
- low resource use,
- mature,
- simple.
Disadvantages
- old-school workflow,
- X11 only,
- smaller modern ecosystem.
16. IceWM
IceWM provides a traditional desktop-like interface with very low resource use.
Advantages
- excellent for old hardware,
- familiar taskbar/menu model,
- minimal overhead.
Disadvantages
- visually traditional,
- less interesting if your goal is learning tiling.
17. Labwc
Labwc is a Wayland stacking compositor inspired by Openbox.
Character
It is useful for people who want:
- Wayland,
- traditional floating windows,
- lightweight behavior,
- an Openbox-like mental model.
18. River
River is a minimalist Wayland compositor with a dynamic tiling philosophy.
It is attractive to users who prefer small composable tools and explicit configuration.
19. Wayfire
Wayfire is a Wayland compositor built around plugins and visual effects.
It can provide a more Compiz-like experience than minimalist tiling compositors.
20. Enlightenment
Enlightenment is a long-running desktop/window-management project with its own libraries, visual style and configuration model.
It sits somewhere between a WM and a broader desktop environment.
21. KWin
KWin is KDE Plasma's window manager and Wayland compositor.
It supports:
- floating windows,
- effects,
- window rules,
- scripting,
- virtual desktops,
- tiling features depending on version/plugins.
You normally use it as part of Plasma rather than as a standalone WM.
22. Mutter
Mutter is GNOME's window manager and Wayland compositor.
It is tightly integrated with GNOME Shell.
GNOME extensions can modify workflow, but Mutter is not normally treated as a standalone configurable WM like i3.
23. Xfwm
Xfwm is XFCE's lightweight floating window manager.
It is mature, fast and integrates tightly with XFCE.
24. Important WMs - comparison
| WM | Display system | Style | Configuration |
|---|---|---|---|
| i3 | X11 | manual tiling | text file |
| Sway | Wayland | manual tiling | i3-like text file |
| Hyprland | Wayland | dynamic/hybrid | text file |
| bspwm | X11 | tiling | shell + bspc |
| AwesomeWM | X11 | dynamic | Lua |
| XMonad | X11 | tiling | Haskell |
| dwm | X11 | dynamic | C source |
| Qtile | X11/Wayland | tiling | Python |
| Openbox | X11 | floating | XML |
| Labwc | Wayland | floating | text/XML-style config |
25. Typical desktop with i3
i3
+ i3status / Polybar
+ rofi / dmenu
+ picom
+ dunst
+ terminal
+ nm-applet
26. Typical desktop with Sway
Sway
+ Waybar
+ wofi / bemenu
+ mako
+ swaylock
+ swaybg
+ grim/slurp
+ wl-clipboard
27. Typical desktop with Hyprland
Hyprland
+ Waybar
+ rofi-wayland / wofi
+ swaync / mako
+ hyprlock
+ hypridle
+ grim/slurp
+ wl-clipboard
28. Typical desktop with bspwm
bspwm
+ sxhkd
+ Polybar
+ rofi
+ picom
+ dunst
29. Launchers
dmenu
Minimal X11 launcher.
Excellent when you want the smallest possible tool.
rofi
More feature-rich launcher and window switcher.
Common under X11; Wayland-capable variants also exist.
wofi
Wayland-oriented launcher inspired by rofi.
bemenu
Minimal menu usable in Wayland-oriented setups.
30. Panels
Polybar
Popular X11 panel used with i3 and bspwm.
Waybar
Common Wayland panel for Sway and Hyprland.
tint2
Lightweight X11 panel for traditional WMs.
31. Notifications
Typical notification daemons:
dunst X11
mako Wayland
swaync Wayland notification center
32. Wallpaper
Common tools:
feh X11
nitrogen X11
swaybg Wayland/Sway
hyprpaper Hyprland ecosystem
33. Screen locking
Examples:
i3lock
swaylock
hyprlock
A screen locker is a security component. Configure it carefully and test suspend/resume behavior.
34. Compositor in X11
Under X11, a separate compositor such as picom can add:
- transparency,
- shadows,
- vsync,
- animations depending on fork/config.
Under Wayland the compositor is already part of the core graphical stack.
35. Workspace
A workspace is a virtual desktop.
Tiling users often assign categories:
1 terminal
2 browser
3 code
4 communication
36. Scratchpad
A scratchpad is a hidden area for windows you want to summon temporarily.
Typical use:
- terminal,
- calculator,
- music player.
37. Window rules
Rules can automatically:
- move an app to a workspace,
- make it floating,
- change size,
- set opacity,
- assign monitor.
Rules are powerful, but too many rules make configuration fragile.
38. Autostart
A standalone WM often needs explicit autostart for:
- panel,
- notifications,
- network applet,
- wallpaper,
- clipboard manager,
- polkit agent,
- authentication agents.
Do not forget a polkit agent on desktops that need graphical privilege prompts.
39. Terminal
Popular choices:
- foot,
- Alacritty,
- Kitty,
- WezTerm,
- xterm.
Choose based on features you need, not benchmark trivia.
40. File manager
Any file manager can be used with a standalone WM.
Examples:
- Thunar,
- Dolphin,
- Nemo,
- PCManFM.
41. Network Manager
NetworkManager can be controlled with:
nmcli
or graphical tools such as nm-applet.
42. Bluetooth
A common lightweight GUI is:
blueman
The underlying Linux Bluetooth stack is BlueZ.
43. Audio
Modern Linux desktops commonly use PipeWire.
Useful GUI:
pavucontrol
Useful CLI tools depend on PipeWire/PulseAudio compatibility setup.
44. Brightness control
A common utility:
brightnessctl
Example:
brightnessctl set 10%+
brightnessctl set 10%-
45. Screenshots
Wayland:
grim
slurp
X11:
scrot
maim
Desktop environments may provide Spectacle or GNOME Screenshot equivalents.
46. Clipboard
Wayland:
wl-copy
wl-paste
X11:
xclip
xsel
Clipboard managers are separate tools.
47. Display managers
Common display managers:
- GDM,
- SDDM,
- LightDM.
They let you select sessions such as GNOME, Plasma, i3 or Sway.
48. Starting a WM without a display manager
You can start graphical sessions from a TTY.
Exact methods depend on X11/Wayland and distro configuration.
For X11, startx and .xinitrc are classic mechanisms.
For Wayland, many compositors can be launched directly from a login shell.
49. Tiling WMs on multiple monitors
A good tiling WM makes multi-monitor work very efficient.
Common ideas:
- bind workspaces to outputs,
- move focused workspace between monitors,
- keep workspace numbering stable,
- define startup placement rules.
50. Minimalism and RAM usage
A standalone WM can use much less memory than a full desktop environment.
But do not over-focus on idle RAM.
A modern browser can consume more memory than the entire desktop stack.
Choose a WM mainly for workflow.
51. What should you choose?
You want the easiest introduction to tiling
Choose i3.
You want i3, but Wayland
Choose Sway.
You want modern visuals and animation
Choose Hyprland.
You want maximum modularity
Choose bspwm.
You want to configure the desktop in Python
Choose Qtile.
You want Lua
Choose AwesomeWM.
You want advanced functional configuration
Choose XMonad.
You want extreme minimalism
Choose dwm.
You want classic floating windows
Choose Openbox on X11 or Labwc on Wayland.
52. Good learning set
A useful path:
GNOME/KDE
→ i3
→ Sway
→ Hyprland or programmable WM
This teaches concepts in increasing order of customization.
53. Proposal for Debian
For a Debian machine where reliability matters:
GNOME or KDE as fallback session
+
i3 or Sway for learning
This lets you experiment without losing a known-good desktop.
54. Important configuration files
i3 ~/.config/i3/config
Sway ~/.config/sway/config
Hyprland ~/.config/hypr/hyprland.conf
bspwm ~/.config/bspwm/bspwmrc
sxhkd ~/.config/sxhkd/sxhkdrc
Awesome ~/.config/awesome/rc.lua
Qtile ~/.config/qtile/config.py
XMonad ~/.xmonad/xmonad.hs
55. Useful concepts
WM
Window manager.
Compositor
Software that composes final window output, effects and often the display server role under Wayland.
DE
Desktop environment.
Tiling
Non-overlapping automatic layout.
Floating
Free positioning and resizing.
Workspace
Virtual desktop.
Launcher
Tool that starts applications.
Status bar
Displays workspaces, CPU, network, clock and other state.
Scratchpad
Hidden temporary window area.
X11
Traditional Unix/Linux display architecture.
Wayland
Modern display protocol and compositor model.
XWayland
Compatibility server allowing X11 applications to run inside a Wayland session.
56. Cheat sheet
i3 easiest tiling start
Sway i3-like Wayland
Hyprland modern animated Wayland
bspwm modular X11
Qtile Python
Awesome Lua
XMonad Haskell
dwm C/minimalism
Openbox classic X11 floating
Labwc classic Wayland floating
57. Most important thing to remember
A window manager is only one component of a desktop.
With a full DE, integration is provided for you.
With a standalone WM, you decide how the desktop is assembled.
58. Practical recommendation for learning
Start with i3 if you want to understand tiling itself.
Move to Sway when you want the same mental model on Wayland.
Try Hyprland only after you understand which pieces of the desktop you actually need.
That way you learn Linux desktop architecture instead of merely copying someone else's dotfiles.
Official references
- X.Org documentation: https://www.x.org/wiki/Documentation/
- Wayland: https://wayland.freedesktop.org/
- i3 User's Guide: https://i3wm.org/docs/userguide.html
- Sway: https://github.com/swaywm/sway
- Hyprland Wiki: https://wiki.hypr.land/