Go to file
Hiltjo Posthuma e81f17d4c1 restore SIGCHLD sighandler to default before spawning a program
From sigaction(2):
A child created via fork(2) inherits a copy of its parent's signal dispositions.
During an execve(2), the dispositions of handled signals are reset to the default;
the dispositions of ignored signals are left unchanged.

This refused to start directly some programs from configuring in config.h:

static Key keys[] = {
	MODKEY,                       XK_o,      spawn,          {.v = cmd } },
};

Some reported programs that didn't start were: mpv, anki, dmenu_extended.

Reported by pfx.
Initial patch suggestion by Storkman.
2023-04-09 12:37:14 +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
config.def.h Revert "Remove dmenumon variable" 2022-10-28 16:37:56 +02:00
config.mk config.mk: update to _XOPEN_SOURCE=700L 2023-02-17 15:27:34 +01:00
drw.c remove workaround for a crash with color emojis on some systems, now fixed in libXft 2.3.5 2022-09-17 15:32:41 +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 restore SIGCHLD sighandler to default before spawning a program 2023-04-09 12:37:14 +02: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 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

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.