Go to file
Chris Down 8657affa2a drawbar: Don't expend effort drawing bar if it is occluded
I noticed that a non-trivial amount of dwm's work on my machine was from
drw_text, which seemed weird, because I have the bar disabled and we
only use drw_text as part of bar drawing.

Looking more closely, I realised that while we use m->showbar when
updating the monitor bar margins, but don't skip actually drawing the
bar if it is hidden. This patch skips drawing it entirely if that is the
case.

On my machine, this takes 10% of dwm's on-CPU time, primarily from
restack() and focus().

When the bar is toggled on again, the X server will generate an Expose
event, and we'll redraw the bar as normal as part of expose().
2021-12-19 16:16:30 +01:00
LICENSE Prepare 6.2 release. 2019-02-02 04:50:42 -08: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
config.def.h Add a configuration option for fullscreen locking 2021-07-14 11:26:37 +02:00
config.mk config.mk: fix POSIX_C_SOURCE macro for feature test for snprintf() 2020-04-03 15:36:32 +02:00
drw.c Revert "Improve speed of drw_text when provided with large strings" 2021-08-20 23:09:48 +02:00
drw.h ColBorder has been moved to the enum with ColFg and ColBg. 2018-03-14 17:46:48 +01:00
dwm.1 dwm.1: fix wrong text in man page 2020-07-08 18:05:50 +02:00
dwm.c drawbar: Don't expend effort drawing bar if it is occluded 2021-12-19 16:16:30 +01:00
dwm.png alternate dwm.png 2006-07-19 14:49:19 +02: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 die() on calloc failure 2016-11-05 11:34:52 +01:00
util.h import new drw from libsl and minor fixes. 2016-06-26 13:52:36 +02:00

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.