You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
bakkeby f09418bbb6 dwm crashes when opening 50+ clients (tile layout)
Many users new to dwm find themselves caught out by being kicked out to the login manager (dwm crashing) when they open 50+ clients for demonstration purposes. The number of clients reported varies depending on the resolution of the monitor.

The cause of this is due to how the default tile layout calculates the height of the next client based on the position of the previous client. Because clients have a minimum size the (ty) position can exceed that of the window height, resulting in (m->wh - ty) becoming negative. The negative height stored as an unsigned int results in a very large height ultimately resulting in dwm crashing.

This patch adds safeguards to prevent the ty and my positions from exceeding that of the window height.
6 years ago
LICENSE Prepare 6.2 release. 7 years ago
Makefile Makefile: just show the compiler output 8 years ago
README update README: remove mentioning the old dextra repo 8 years ago
config.def.h config.def.h: ClkTagBar missing from comment 8 years ago
config.mk config.mk: fix POSIX_C_SOURCE macro for feature test for snprintf() 6 years ago
drw.c Prepare 6.2 release. 7 years ago
drw.h ColBorder has been moved to the enum with ColFg and ColBg. 8 years ago
dwm.1 remove old TODO and BUGS entries 8 years ago
dwm.c dwm crashes when opening 50+ clients (tile layout) 6 years ago
dwm.png alternate dwm.png 20 years ago
transient.c applied Peter Hartlichs nice interim Xinerama and map fix patches, for debugging purposes I also added his transient test driver 15 years ago
util.c die() on calloc failure 9 years ago
util.h import new drw from libsl and minor fixes. 10 years ago

README

dwm - dynamic window manager
============================
dwm is an extremely fast, small, and dynamic window manager for X.


Requirements
------------
In order to build dwm you need the Xlib header files.


Installation
------------
Edit config.mk to match your local setup (dwm is installed into
the /usr/local namespace by default).

Afterwards enter the following command to build and install dwm (if
necessary as root):

    make clean install


Running dwm
-----------
Add the following line to your .xinitrc to start dwm using startx:

    exec dwm

In order to connect dwm to a specific display, make sure that
the DISPLAY environment variable is set correctly, e.g.:

    DISPLAY=foo.bar:1 exec dwm

(This will start dwm on display :1 of the host foo.bar.)

In order to display status info in the bar, you can do something
like this in your .xinitrc:

    while xsetroot -name "`date` `uptime | sed 's/.*,//'`"
    do
    	sleep 1
    done &
    exec dwm


Configuration
-------------
The configuration of dwm is done by creating a custom config.h
and (re)compiling the source code.