dwm - dynamic window manager
dwm is a dynamic window manager for X. It manages windows in tiled,
monocle and floating layouts. Either layout can be applied dynamically,
optimising the environment for the application in use and the task
In tiled layouts windows are managed in a master and stacking area. The
master area contains the window which currently needs most attention,
whereas the stacking area contains all other windows. In monocle layout
all windows are maximised to the screen size. In floating layout
windows can be resized and moved freely. Dialog windows are always
managed floating, regardless of the layout applied.
Windows are grouped by tags. Each window can be tagged with one or
multiple tags. Selecting certain tags displays all windows with these
Each screen contains a small status bar which displays all available
tags, the layout, the title of the focused window, and the text read
from the root window name property, if the screen is focused. A
floating window is indicated with an empty square and a maximised
floating window is indicated with a filled square before the windows
title. The selected tags are indicated with a different color. The
tags of the focused window are indicated with a filled square in the
top left corner. The tags which are applied to one or more windows are
indicated with an empty square in the top left corner.
dwm draws a small border around windows to indicate the focus state.
-v prints version information to standard output, then exits.
X root window name
is read and displayed in the status text area. It can be set
with the xsetroot(1) command.
click on a tag label to display all windows with that tag, click
on the layout label toggles between tiled and floating layout.
click on a tag label adds/removes all windows with that tag
to/from the view.
click on a tag label applies that tag to the focused window.
click on a tag label adds/removes that tag to/from the focused
Mod1-, Focus previous screen, if any.
Mod1-. Focus next screen, if any.
Send focused window to previous screen, if any.
Send focused window to next screen, if any.
Mod1-b Toggles bar on and off.
Mod1-t Sets tiled layout.
Mod1-f Sets floating layout.
Mod1-m Sets monocle layout.
Toggles between current and previous layout.
Mod1-j Focus next window.
Mod1-k Focus previous window.
Mod1-h Decrease master area size.
Mod1-l Increase master area size.
Zooms/cycles focused window to/from master area (tiled layouts
Close focused window.
Toggle focused window between tiled and floating state.
Toggles to the previously selected tags.
Apply nth tag to focused window.
Apply all tags to focused window.
Add/remove nth tag to/from focused window.
View all windows with nth tag.
Mod1-0 View all windows with any tag.
Add/remove all windows with nth tag to/from the view.
Move focused window while dragging. Tiled windows will be
toggled to the floating state.
Toggles focused window between floating and tiled state.
Resize focused window while dragging. Tiled windows will be
toggled to the floating state.
dwm is customized by creating a custom config.h and (re)compiling the
source code. This keeps it fast, secure and simple.
Java applications which use the XToolkit/XAWT backend may draw grey
windows only. The XToolkit/XAWT backend breaks ICCCM-compliance in
recent JDK 1.5 and early JDK 1.6 versions, because it assumes a
reparenting window manager. Possible workarounds are using JDK 1.4
(which doesn’t contain the XToolkit/XAWT backend) or setting the
environment variable AWT_TOOLKIT=MToolkit (to use the older Motif
backend instead) or running xprop -root -f _NET_WM_NAME 32a -set
_NET_WM_NAME LG3D or wmname LG3D (to pretend that a non-reparenting
window manager is running that the XToolkit/XAWT backend can recognize)
or when using OpenJDK setting the environment variable
GTK 2.10.9+ versions contain a broken Save-As file dialog
implementation, which requests to reconfigure its window size in an
endless loop. However, its window is still respondable during this
state, so you can simply ignore the flicker until a new GTK version
appears, which will fix this bug, approximately GTK 2.10.12+ versions.