Alternatives to dwm
Use a small dynamic window manager for X11 with tiling and floating layouts. The listings below can replace it for an important use case. Each note says what changes if you switch.
The original
dwm
Use a small dynamic window manager for X11 with tiling and floating layouts.
Replacements
Listings that take over the same core job as dwm.
i3
Arrange X11 windows in a keyboard-controlled tiling workspace.
i3 is also an X11 tiling window manager, but it uses a tree-based layout and a configuration file with key bindings, so there is no source editing or recompiling.
awesome
Build a keyboard-driven X11 desktop with a window manager configured in Lua.
awesome keeps tiling and floating layouts on X11 but moves configuration from recompiled C source to Lua, and adds programmable widgets and window rules.
bspwm
Manage X11 windows as the leaves of a binary tree.
bspwm arranges X11 windows as leaves of a binary tree and is controlled through shell commands, but it needs separate tools for key bindings and panels.
Qtile
Configure a tiling window manager using Python.
Qtile replaces source edits with Python configuration, offers programmable layouts and widgets, and provides both X11 and Wayland back ends.
LeftWM
Arrange Linux windows with a tiling manager written in Rust.
LeftWM is a tiling manager written in Rust under the MIT license that separates layout logic from appearance, with bars configured separately.
Sway
Use an i3-style tiling workflow on Wayland.
Sway moves an i3-style keyboard tiling workflow to Wayland, so some X11 applications and workflows need compatibility layers or alternatives.
Hyprland
Arrange Linux application windows with a configurable tiling Wayland compositor.
Hyprland is a Wayland compositor with dynamic tiling and animations, which requires compatible Wayland graphics support and manual configuration instead of recompiling.
xmonad
A dynamically tiling X11 window manager that is written and configured in Haskell.
xmonad also tiles X11 windows automatically, but it is configured as a full Haskell program with a large extension set in xmonad-contrib instead of edited C source.
Also worth comparing
These listings name dwm as their own alternative, so the relationship runs both ways.
dwl
A dwm-like dynamic tiling Wayland compositor built on the wlroots library.
dwm is the X11 dynamic tiling window manager dwl imitates, with the same compact code and edit-and-recompile customisation, but it runs on X11 instead of Wayland.
herbstluftwm
A manual tiling window manager for X11 that is configured at runtime through the herbstclient tool.
dwm is a small dynamic tiling manager for X11, but most customisations require editing and recompiling its source code.
Openbox
Manage X11 windows with a configurable stacking window manager.
dwm is a small dynamic X11 window manager with tiling and floating layouts, but many customizations require editing and recompiling its source code.
spectrwm
A small dynamic tiling window manager for X11 that aims to stay out of the way.
dwm is another small X11 dynamic tiling manager, but many customizations require editing and recompiling the source instead of a plain-text config file.
StumpWM
A keyboard-driven tiling window manager for X11, written in and extensible with Common Lisp.
dwm is a small dynamic X11 tiling window manager whose customisations usually mean editing and recompiling C source.
Similar software
Related functionality, not a direct replacement.
Polybar
Build a configurable status bar for an X11 desktop.
Lemonbar
Featherweight, scriptable status bar for X11 built on xcb.
Tint2
Lightweight panel and taskbar for Linux and BSD window managers.
Eww
Create custom desktop widgets using declarative configuration and styling.
rofi
A keyboard-driven window switcher, application launcher and dmenu replacement for Linux desktops.