about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--dwm.h34
1 files changed, 14 insertions, 20 deletions
diff --git a/dwm.h b/dwm.h
index 8e665ea..9b497c9 100644
--- a/dwm.h
+++ b/dwm.h
@@ -5,30 +5,24 @@
  * 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 like dwm selects for SubstructureRedirectMask on the root window, to
- * receive events about child window appearance and disappearance.  Only one X
+ * receive events about window appearance and disappearance.  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 of the X connection are
- * blocking.  Due the fact, that dwm reads 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 and without
- * busy-loop quirks. 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.
+ * Calls to fetch an X event from the X event queue connection 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 and without busy-loop quirks. 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 window of the root window is called a client in window manager
- * terminology, 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. There are no other data structures to organize the clients
- * in tag lists. All clients which have at least one tag enabled of the current
- * tags viewed, will be visible on the screen, all other clients are banned to
- * the x-location x + 2 * screen width.  This avoids having additional layers
- * of workspace handling.
+ * 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 WM_NAME or
+ * _NET_WM_NAME properties are updated or the client is resized.
  *
- * For each client dwm creates a small title window which is resized whenever
- * the WM_NAME or _NET_WM_NAME properties are updated or the client is 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 mode is
#336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
.TH DWM 1 dwm-VERSION
.SH NAME
dwm \- dynamic window manager
.SH SYNOPSIS
.B dwm
.RB [ \-v ]
.SH DESCRIPTION
dwm is a dynamic window manager for X. It manages windows in tiling and
floating modes. Either mode can be applied dynamically, optimizing the
environment for the application in use and the task performed.
.P
In tiling mode windows are managed in a master and stacking area. The master
area contains the window which currently needs most attention, whereas the
stacking area contains all other windows. In floating mode windows can be
resized and moved freely. Dialog windows are always managed floating,
regardless of the mode selected.
.P
Windows are grouped by tags. Each window can be tagged with one or multiple
tags. Selecting certain tags displays all windows with these tags.
.P
dwm contains a small status bar which displays all available tags, the mode,
the title of the focused window, and the text read from standard input. The
selected tags are highlighted with a different color, the tags of the focused
window are highlighted with a small point.
.P
dwm draws a 1-pixel border around windows to indicate the focus state.
Unfocused windows contain a small bar in front of them displaying their title.
.SH OPTIONS
.TP
.B \-v
prints version information to standard output, then exits.
.SH USAGE
.SS Status bar
.TP
.B Standard input
is read and displayed in the status text area.
.TP
.B Button1
click on a tag label to display all windows with that tag, click on the mode
label toggles between tiling and floating mode.
.TP
.B Button3
click on a tag label adds/removes all windows with that tag to/from the view.
.TP
.B Mod1-Button1
click on a tag label applies that tag to the focused window.
.TP
.B Mod1-Button3
click on a tag label adds/removes that tag to/from the focused window.
.SS Keyboard commands
.TP
.B Mod1-Shift-Return
Start
.BR xterm (1).
.TP
.B Mod1-Tab
Focus next window.
.TP
.B Mod1-Shift-Tab
Focus previous window.
.TP
.B Mod1-Return
Zooms/cycles current window to/from master area (tiling mode), toggles maximization current window (floating mode).
.TP
.B Mod1-g
Grow current area (tiling mode only).
.TP
.B Mod1-s
Shrink current area (tiling mode only).
.TP
.B Mod1-Shift-[1..n]
Apply
.RB nth
tag to current window.
.TP
.B Mod1-Control-Shift-[1..n]
Add/remove
.B nth
tag to/from current window.
.TP
.B Mod1-Shift-c
Close focused window.
.TP
.B Mod1-space
Toggle between tiling and floating mode (affects all windows).
.TP
.B Mod1-[1..n]
View all windows with
.BR nth
tag.
.TP
.B Mod1-0
View all windows with any tag.
.TP
.B Mod1-Control-[1..n]
Add/remove all windows with
.BR nth
tag to/from the view.
.TP
.B Mod1-Shift-q
Quit dwm.
.SS Mouse commands
.TP
.B Mod1-Button1
Move current window while dragging (floating mode only).
.TP
.B Mod1-Button2
Zoom current window to the master area (tiling mode only).
.TP
.B Mod1-Button3
Resize current window while dragging (floating mode only).
.SH CUSTOMIZATION
dwm is customized by creating a custom config.h and (re)compiling the source
code. This keeps it fast, secure and simple.
.SH CAVEATS
The status bar may display
.BR "broken pipe"
when dwm has been started by
.BR xdm (1),
because it closes standard output before executing dwm.
.SH SEE ALSO
.BR dmenu (1)