My simplistic-looking yet advanced build of suckless's dynamic window manager.
Go to file
Stein 5799dd1fca Remove blw variable in favour of calculating the value when needed
The purpose and reasoning behind the bar layout width (blw) variable
in dwm the way it is today may not be immediately obvious.

The use of the variable makes more sense when looking at commit
2ce37bc from 2009 where blw was initialised in the setup function
and it represented the maximum of all available layout symbols.

	for(blw = i = 0; LENGTH(layouts) > 1 && i < LENGTH(layouts); i++) {
		w = TEXTW(layouts[i].symbol);
		blw = MAX(blw, w);
	}

As such the layout symbol back then was fixed in size and both drawbar
and buttonpress depended on this variable.

The the way the blw variable is set today in drawbar means that it
merely caches the size of the layout symbol for the last bar drawn.

While unlikely to happen in practice it is possible that the last bar
drawn is not that of the currently selected monitor, which can result
in misaligned button clicks if there is a difference in layout symbol
width between monitors.
2022-08-17 13:33:57 +02:00
config.def.h Add a configuration option for fullscreen locking 2021-07-14 11:26:37 +02:00
config.mk Makefile: add manual path for OpenBSD 2022-05-01 18:37:54 +02:00
drw.c sync latest drw.{c,h} changes from dmenu 2022-05-10 19:07:56 +02:00
drw.h sync latest drw.{c,h} changes from dmenu 2022-05-10 19:07:56 +02:00
dwm.1 dwm.1: fix wrong text in man page 2020-07-08 18:05:50 +02:00
dwm.c Remove blw variable in favour of calculating the value when needed 2022-08-17 13:33:57 +02:00
dwm.png alternate dwm.png 2006-07-19 14:49:19 +02:00
LICENSE LICENSE: add Chris Down 2022-04-26 15:50:32 +02:00
Makefile Makefile: just show the compiler output 2018-06-02 17:10:28 +02:00
README update README: remove mentioning the old dextra repo 2018-03-14 21:03:11 +01:00
transient.c applied Peter Hartlichs nice interim Xinerama and map fix patches, for debugging purposes I also added his transient test driver 2011-07-29 20:01:22 +02:00
util.c sync code-style patch from libsl 2022-08-08 10:43:09 +02:00
util.h import new drw from libsl and minor fixes. 2016-06-26 13:52:36 +02:00

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.