Translation(s): English - Fran├žais

dwm is a dynamic tiling window manager written in C. It is lightweight, fast and has served as inspiration for many other window managers, including Awesome, Xmonad and scrotwm. Like all tiling window managers, emphasis is placed on mouse-less window control through the extensive use of keyboard shortcuts.


The dwm and complementary suckless-tools packages can be installed via the standard repositories:

# aptitude install dwm suckless-tools

Note however that any configuration must be done at build-time. Installing dwm in this manner will give you a fully-functional, but statically configured window manager. To make any customization, the source code will be required (see below for detailed instructions).


dwm is configured by modifying its source code and recompiling the binary. Fortunately, the source code is so small that it compiles within a few seconds under even the slowest of modern processors.

To get started, grab the source code by running the following in a terminal:

$ apt-get source dwm

Browse to the extracted directory:

$ cd dwm-*

Copy the template configuration file to one which will be used for customizations:

$ cp config.def.h config.h

Now open config.h in the editor your choice and make the desired changes. Though it is written in C, most of the preferences are self-explanatory.

Once your changes are complete, run the following command (as root) in the source directory:

# make clean install

This will (re)compile dwm and install the binary to /usr/local/bin/ and man page documentation to /usr/local/share/man/.

Tip: If you do not have root privileges, or if multiple users want customized instances of dwm, you can run dwm from the build directory without installing it. Simply replace 'make clean install' with 'make clean' and then modify your startup script (e.g., .xinitrc) to point to the absolute path to the dwm binary; for example:

xset r rate 250 60                          # keyboard repeat delay and rate
xsetroot -solid darkgrey                    # set root window background
exec ~/dwm-source-dir/dwm

See also


ToDo: Add Usage section with examples for users of display managers and xinitrc scripts