Introduction
Introduction Statistics Contact Development Disclaimer Help
tbackporting my intro-comment of old dwm.h - dwm - [fork] customized build of d…
git clone git://src.adamsgaard.dk/dwm
Log
Files
Refs
README
LICENSE
---
commit e041ff70b0e4438e741405d994e13f91435ed321
parent 2d7bb8d7c974c1ae5430fa1561c850f0ea4623d3
Author: Anselm R. Garbe <[email protected]>
Date: Sat, 15 Sep 2007 22:33:46 +0200
backporting my intro-comment of old dwm.h
Diffstat:
M dwm.c | 31 +++++++++++++++++++++++++++++…
1 file changed, 30 insertions(+), 1 deletion(-)
---
diff --git a/dwm.c b/dwm.c
t@@ -1,4 +1,33 @@
-/* See LICENSE file for copyright and license details. */
+/* See LICENSE file for copyright and license details.
+ *
+ * dynamic window manager is designed like any other X client as well. It is
+ * driven through handling X events. In contrast to other X clients, a window
+ * manager selects for SubstructureRedirectMask on the root window, to receive
+ * events about window (dis-)appearance. Only one X connection at a time is
+ * allowed to select for this event mask.
+ *
+ * Calls to fetch an X event from the event queue are blocking. Due reading
+ * status text from standard input, a select()-driven main loop has been
+ * implemented which selects for reads on the X connection and STDIN_FILENO to
+ * handle all data smoothly. The event handlers of dwm are organized in an
+ * array which is accessed whenever a new event has been fetched. This allows
+ * event dispatching in O(1) time.
+ *
+ * Each child of the root window is called a client, except windows which have
+ * set the override_redirect flag. Clients are organized in a global
+ * doubly-linked client list, the focus history is remembered through a global
+ * stack list. Each client contains an array of Bools of the same size as the
+ * global tags array to indicate the tags of a client. For each client dwm
+ * creates a small title window, which is resized whenever the (_NET_)WM_NAME
+ * properties are updated or the client is moved/resized.
+ *
+ * Keys and tagging rules are organized as arrays and defined in the config.h
+ * file. These arrays are kept static in event.o and tag.o respectively,
+ * because no other part of dwm needs access to them. The current layout is
+ * represented by the lt pointer.
+ *
+ * To understand everything else, start reading main().
+ */
#include <errno.h>
#include <locale.h>
#include <regex.h>
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.