index.md - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       index.md (9454B)
       ---
            1 ![dwm](dwm.svg)
            2 
            3 dwm is a dynamic window manager for X. It manages windows in tiled, monocle and
            4 floating layouts. All of the layouts can be applied dynamically, optimising the
            5 environment for the application in use and the task performed.
            6 
            7 In tiled layout windows are managed in a master and stacking area. The master
            8 area contains the window which currently needs most attention, whereas the
            9 stacking area contains all other windows. In monocle layout all windows are
           10 maximised to the screen size. In floating layout windows can be resized and
           11 moved freely. Dialog windows are always managed floating, regardless of the
           12 layout applied.
           13 
           14 Windows are grouped by tags. Each window can be tagged with one or multiple
           15 tags. Selecting certain tags displays all windows with these tags.
           16 
           17 Each screen contains a small status bar which displays all available tags, the
           18 layout, the number of visible windows, the title of the focused window, and the
           19 text read from the root window name property, if the screen is focused. A
           20 floating window is indicated with an empty square and a maximised floating
           21 window is indicated with a filled square before the windows title. The selected
           22 tags are indicated with a different color. The tags of the focused window are
           23 indicated with a filled square in the top left corner. The tags which are
           24 applied to one or more windows are indicated with an empty square in the top
           25 left corner.
           26 
           27 dwm draws a small customizable border around windows to indicate the focus
           28 state.
           29 
           30 [![Screenshot](screenshots/dwm-20100318s.png)](screenshots/dwm-20100318.png)
           31 
           32 Differences
           33 -----------
           34 In contrast to ion, larswm, and wmii, dwm is much smaller, faster and simpler.
           35 
           36 * dwm has no Lua integration, no 9P support, no shell-based configuration, no
           37   remote control, and comes without any additional tools, such as for printing
           38   the selection or warping the mouse.
           39 * dwm is only a single binary, and its source code is intended to be kept small.
           40 * dwm doesn't distinguish between layers: there is no floating or tiled layer.
           41   Whether or not the clients of currently selected tag(s) are in tiled layout,
           42   you can rearrange them on the fly. Popup and fixed-size windows are always
           43   floating, however.
           44 * dwm is customized through editing its source code, which makes it extremely
           45   fast and secure - it does not process any input data which isn't known at
           46   compile time, except window titles and status text read from the root window's
           47   name. You don't have to learn Lua/sh/ruby or some weird configuration file
           48   format (like X resource files), beside C, to customize it for your needs: you
           49   only have to learn C (at least in order to edit the header file).
           50 * Because dwm is customized through editing its source code, it's pointless to
           51   make binary packages of it. This keeps its userbase small and elitist. No
           52   novices asking stupid questions. There are some distributions that provide
           53   binary packages though.
           54 * dwm reads from the root window's name to print arbitrary status text (like
           55   the date, load, battery charge). That's much simpler than larsremote, wmiir and
           56   what not...
           57 * dwm creates a view for each Xinerama screen.
           58 
           59 Links
           60 -----
           61 * Mailing List: `dev+subscribe@suckless.org`
           62   ([Archives](//lists.suckless.org/dev/))
           63   ([Old Archives](//lists.suckless.org/dwm/)) (see
           64   [community](//suckless.org/community/) for details)
           65 * IRC channel: #suckless at irc.oftc.net
           66 
           67 Download
           68 --------
           69 * [dwm 6.6](//dl.suckless.org/dwm/dwm-6.6.tar.gz) (26kb) (2025-08-09)
           70 * [MIT/X Consortium license](//git.suckless.org/dwm/plain/LICENSE)
           71 * See also [dmenu](//tools.suckless.org/dmenu)
           72 
           73 Support
           74 -------
           75 See the [faq](//dwm.suckless.org/faq) for the frequent questions that are
           76 asked. The next step is to look at the source-code and the config.h for obvious
           77 names, which could be related to the problem that arose. If that does not help
           78 to fix the problem, then there is the #suckless IRC channel and the
           79 mailinglist.
           80 
           81 If it is your first time using dwm, start with reading the
           82 [tutorial](//dwm.suckless.org/tutorial).
           83 
           84 Development
           85 -----------
           86 You can [browse](//git.suckless.org/dwm) its source code repository or get a copy using git with the following command:
           87 
           88         git clone https://git.suckless.org/dwm
           89 
           90 Miscellaneous
           91 -------------
           92 * Optionally you can install [dmenu](//tools.suckless.org/dmenu) to extend dwm
           93   with a wmii-like menu.
           94 * Wikipedia [article about dwm](http://en.wikipedia.org/wiki/Dwm)
           95 
           96 Related discussion
           97 ------------------
           98 * [https://www.ghcif.de/tag/dynamic-window-manager/](https://www.ghcif.de/tag/dynamic-window-manager/) (German)
           99 * [dwm blog post in Persian](http://efazati.blog.ir/post/DWM-%D8%B1%D8%A7%D9%87%DA%A9%D8%A7%D8%B1-%D9%85%D9%86%D8%A7%D8%B3%D8%A8%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D9%BE%D9%86%D8%AC%D8%B1%D9%87-%D9%87%D8%A7-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3)
          100 * [http://www.gambaru.de/blog/2011/12/10/elitare-fenstermanager-sind-vielleicht-doch-einfacher-zu-bedienen-als-gedacht/](http://www.gambaru.de/blog/2011/12/10/elitare-fenstermanager-sind-vielleicht-doch-einfacher-zu-bedienen-als-gedacht/)
          101 * [http://www.linuxjournal.com/content/going-fast-dwm](http://www.linuxjournal.com/content/going-fast-dwm)
          102 * [http://www.linuxgoodies.com/review_dwm.html](http://www.linuxgoodies.com/review_dwm.html)
          103 * [http://www.iyiz.com/20-most-simple-and-cool-x-window-managers-for-linux/](http://www.iyiz.com/20-most-simple-and-cool-x-window-managers-for-linux/)
          104 * [http://lbolla.wordpress.com/2010/01/08/dwm-restart/](http://lbolla.wordpress.com/2010/01/08/dwm-restart/)
          105 * [http://danielkaes.wordpress.com/2009/12/03/adding-a-pidgin-trayicon-to-dwm/](http://danielkaes.wordpress.com/2009/12/03/adding-a-pidgin-trayicon-to-dwm/)
          106 * [http://openmindlifestyle.wordpress.com/2009/11/28/howto-compile-and-configure-dwm-tiling-window-manager-on-ubuntu/](http://openmindlifestyle.wordpress.com/2009/11/28/howto-compile-and-configure-dwm-tiling-window-manager-on-ubuntu/)
          107 * [http://lsetc.wordpress.com/2009/11/27/gno-more-gnome/](http://lsetc.wordpress.com/2009/11/27/gno-more-gnome/)
          108 * [http://houst0n.wordpress.com/2009/12/20/dwm-the-dynamic-window-manager-for-solaris/](http://houst0n.wordpress.com/2009/12/20/dwm-the-dynamic-window-manager-for-solaris/)
          109 * [http://the-monkeymind.blogspot.com/2007/03/dwm-dynamic-window-manager-home-page-at.html](http://the-monkeymind.blogspot.com/2007/03/dwm-dynamic-window-manager-home-page-at.html)
          110 * [http://tonytraductor.livejournal.com/120674.html](http://tonytraductor.livejournal.com/120674.html)
          111 * [http://forums.debian.net/viewtopic.php?f=16&t=65110](http://forums.debian.net/viewtopic.php?f=16&t=65110)
          112 * [http://wongdev.com/blog/dwm-tags-are-not-workspaces/](http://wongdev.com/blog/dwm-tags-are-not-workspaces/) ([archive](https://archive.is/Fw0Mk))
          113 * [dwm usage and configuration page (french)](http://yeuxdelibad.net/Logiciel-libre/Suckless/dwm/index.html)
          114 * [http://www.youtube.com/watch?v=GQ5s6T25jCc](http://www.youtube.com/watch?v=GQ5s6T25jCc)
          115 * [https://srobb.net/dwm.html](https://srobb.net/dwm.html)
          116 * [http://rhunter.org/blog/2012/04/17/dwm-a-tutorial-for-beginners/](http://rhunter.org/blog/2012/04/17/dwm-a-tutorial-for-beginners/)
          117 * [https://cannibalcandy.wordpress.com/2012/04/26/installing-and-configuring-dwm-under-ubuntu/](https://cannibalcandy.wordpress.com/2012/04/26/installing-and-configuring-dwm-under-ubuntu/)
          118 * [http://blog.yjl.im/2011/07/two-weeks-with-dwm.html](http://blog.yjl.im/2011/07/two-weeks-with-dwm.html)
          119 * [http://www.murga-linux.com/puppy/viewtopic.php?p=258224](http://www.murga-linux.com/puppy/viewtopic.php?p=258224)
          120 * [http://opensourceforu.com/2012/03/tiling-window-managers-getting-started-with-dwm/](http://opensourceforu.com/2012/03/tiling-window-managers-getting-started-with-dwm/)
          121 
          122 related projects
          123 ----------------
          124 * [awesome](https://awesomewm.org) -- dwm fork with XCB, EWMH, Lua script, Xft, D-Bus, multihead.. support
          125 * [awm](https://github.com/Alpt/awm/blob/master/README) -- (old) modified dwm with workspaces and /proc like interface
          126 * [bwm](//lists.suckless.org/dwm/0708/3085.html) -- (old) modified dwm with extensive mouse support
          127 * [cons-wm](http://github.com/dharmatech/psilab/tree/master/cons-wm) -- minimalist wm in scheme (not tiled)
          128 * [bug.n](https://github.com/fuhsjr00/bug.n) -- dwm for Windows written in AutoHotkey
          129 * [dvtm](http://www.brain-dump.org/projects/dvtm/) -- virtual terminal manager (dwm on the console)
          130 * [dwl](https://codeberg.org/dwl/dwl) -- hackable dwm for Wayland
          131 * [dwm-gtx](http://s01.de/~gottox/index.cgi/proj_dwm) -- dwm branch with Xinerama support, pointer movement, different layout
          132 * [dwm-sprinkles](http://0mark.unserver.de/dwm-sprinkles/) -- dwm with colorfull bar, transparency, pre-configured pertag and more
          133 * [dwm-win32](http://www.brain-dump.org/projects/dwm-win32/) -- dwm ported to windows
          134 * [echinus](http://www.rootshell.be/~polachok/code/) -- dwm fork with EWMH, Xft support
          135 * [i3](http://i3.zekjur.net/) -- wmii fork with XCB, multihead, vertical column, command mode
          136 * [qtile](http://www.qtile.org/) -- pure python wm, used ideas from dwm
          137 * [scrotwm](http://www.peereboom.us/scrotwm/html/scrotwm.html) -- dwm clone with multihead, config file, restart.. support
          138 * [TAL/wm](http://talwm.sourceforge.net/) -- minimal tiled wm based on dwm (discontinued)
          139 * [teslawm](http://teslawm.org/) -- dwm fork with multihead, mouse, stdin commands support (was dwm-rfigura)
          140 * [xmonad](http://www.xmonad.org/) -- dwm clone in haskell