.TH "WMII" 1 "2010 June" "wmii-@VERSION@" .SH NAME .P wmii \- Window Manager Improved² .SH SYNOPSIS .P wmii \fI[\-a \fI
\fR]\fR \fI[\-r \fI\fR]\fR .P wmii \-v .SH DESCRIPTION .SS Overview .P \fBwmii\fR is a dynamic window manager for X11. In contrast to static window management the user rarely has to think about how to organize windows, no matter what he is doing or how many applications are used at the same time. The window manager adapts to the current environment and fits to the needs of the user, rather than forcing him to use a preset, fixed layout and trying to shoehorn all windows and applications into it. .P \fBwmii\fR supports classic and tiled window management with extended keyboard and mouse control. Classic window management arranges windows in a floating layer in which tyen can be moved and resized freely. Tiled window management arranges windows in vertical columns. Each column holds an arbitrary number arbitrary windows and arranges them vertically in a non\-overlapping manner. They can then be moved and resized, among and within columns, at will. .P \fBwmii\fR provides a virtual filesystem which represents the internal state similar to the procfs of Unix operating systems. Modifying this virtual filesystem results in changing the state of the window manager. The virtual filesystem service can be accessed through 9P\-capable client programs, like wmiir(1). This allows simple and powerful remote control of the core window manager. .SS Command Line Arguments .TP \-a \fI
\fR Specifies the address on which \fBwmii\fR should listen for connections. The address takes the form \fB\fI\fR!\fI
\fR\fR. The default is of the form: .nf unix!/tmp/ns.\fB$USER\fR.\fB${DISPLAY\fR%.0\fB}\fR/wmii .fi which opens a unix socket per Plan 9 Port conventions. To open a TCP socket, listening at port 4332 on the loopback interface, use: .nf tcp!localhost!4332 .fi \fB$WMII_NAMESPACE\fR is automatically set to this value. .TP \-r \fI\fR Specifies which rc script to run. If \fI\fR consists of a single argument, \fB$WMII_CONFPATH\fR is searched before \fB$PATH\fR. Otherwise, it is passed to the shell for evaluation. The environment variables \fB$WMII_ADDRESS\fR and \fB$WMII_CONFPATH\fR are preset for the script. .SS Terminology .TP Display A running X server instance consisting of input devices and screens. .TP Screen A physical or virtual (Xinerama or Xnest(1)) screen of an X display. .TP Window A (rectangular) drawable X object which is displayed on a screen, usually an application window. .TP Client An application window surrounded by a frame window containing a border and a titlebar. .TP Floating layer A screen layer of \fBwmii\fR on top of all other layers, where clients are arranged in a classic (floating) manner. They can be resized or moved freely. .TP Managed layer A screen layer of \fBwmii\fR underneath the floating layer, where clients are arranged in a non\-overlapping (managed) manner. Here, the window manager dynamically assigns each client a size and position. The managed layer consists of columns. .TP Tag Alphanumeric strings which can be assigned to a client. This provides a mechanism to group clients with similar properties. Clients can have one tag, e.g. \fIwork\fR, or several tags, e.g. \fIwork+mail\fR. Tags are separated with the \fI+\fR character. .TP View A set of clients containing a specific tag, quite similar to a workspace in other window managers. It consists of the floating and managed layers. .TP Column A column is a screen area which arranges clients vertically in a non\-overlapping way. Clients can be moved and resized between and within columns freely. .TP Bar The bar at the bottom of the screen displays a label for each view and allows the creation of arbitrary user\-defined labels. .TP Event An event is a message which can be read from a special file in the filesystem of \fBwmii\fR, such as a mouse button press, a key press, or a message written by a different 9P\-client. .SS Basic window management .P Running a raw \fBwmii\fR process without a wmiirc(1) script provides basic window management capabilities. However, to use it effectively, remote control through its filesystem interface is necessary. Without such a script, it is only possible to move and resize clients with the mouse, but not to change their tags or to switch views. Other interactions, such as customizing the style, killing or retagging clients, and grabbing keys, cannot be achieved without accessing the filesystem. .P The filesystem can be accessed by connecting to the \fIaddress\fR of \fBwmii\fR with any 9P\-capable client, such as wmiir(1) .SS Actions .P The default configuration provides for a special menu of actions. These consist of either shell scripts in \fB$WMII_CONFPATH\fR or action definitions included in wmiirc. .P Here is a list of the default actions: .TS tab(^); ll. exec^Replace the window manager with another program quit^Leave the window manager nicely rehash^Refresh the program list showkeys^Display a list of key bindings recognized by wmii status^Periodically print date and load average to the bar welcome^Display a welcome message that contains the wmii tutorial .TE .SS Default Key Bindings .P All of the provided \fBwmiirc\fR scripts accept at least the following key bindings. They should also provide a \fBshowkeys\fR action to open a key binding quick\-reference. .SS Moving Around .TS tab(^); ll. \fBKey\fR^\fBAction\fR Mod\-h^Move to a window to the \fIleft\fR of the one currently focused Mod\-l^Move to a window to the \fIright\fR of the one currently focused Mod\-j^Move to the window \fIbelow\fR the one currently focused Mod\-k^Move to a window \fIabove\fR the one currently focused Mod\-space^Toggle between the managed and floating layers Mod\-t \fI\fR^Move to the view of the given \fI\fR Mod\-\fI\fI[0\-9]\fR\fR^Move to the view with the given number .TE .SS Moving Things Around .TS tab(^); ll. \fBKey\fR^\fBAction\fR Mod\-Shift\-h^Move the current window \fIwindow\fR to a column on the \fIleft\fR Mod\-Shift\-l^Move the current window to a column on the \fIright\fR Mod\-Shift\-j^Move the current window below the window beneath it. Mod\-Shift\-k^Move the current window above the window above it. Mod\-Shift\-space^Toggle the current window between the managed and floating layer Mod\-Shift\-t \fI\fR^Move the current window to the view of the given \fI\fR Mod\-Shift\-\fI\fI[0\-9]\fR\fR^Move the current window to the view with the given number .TE .SS Miscellaneous .TS tab(^); ll. \fBKey\fR^\fBAction\fR Mod\-m^Switch the current column to \fImax mode\fR Mod\-s^Switch the current column to \fIstack mode\fR Mod\-d^Switch the current column to \fIdefault mode\fR Mod\-Shift\-c^\fBKill\fR the selected client Mod\-p \fI\fR^\fBExecute\fR \fI\fR Mod\-a \fI\fR^\fBExecute\fR the named \fR/ -> \fI\fR\fI[+\fI\fR]\fR* .fi Where, .nf \fI\fR := \fI\fR | \fI\fRpx .fi When a new column, \fI\fR, is created on a view whose name matches \fI\fR, it is given the \fI\fRth supplied \fI\fR. If there is no \fI\fRth width, it is given 1/\fI\fRth of the screen. .TP rules \fBPROVISIONAL\fR The \fIrules\fR file contains a list of rules that may be used to automatically set properties of new clients. Rules are specified as: .nf /\fI\fR/ \fI\fR=\fI\fR ... .fi where each \fI\fR represents a command in the clients \fIctl\fR file, and each \fI\fR represents the value to assign to it. The rules are applied when the client is first started and the contents of the \fIprops\fR file match the regular expression \fI\fR. Additionally, the following keys are accepted and have special meaning: .RS 8 .TP continue Normally, when a matching rule is encountered, rule matching stops. When the continue key is provided (with any value), matching continues at the next rule. .TP force\-tags=\fI\fR Like \fItags\fR, but overrides any settings obtained obtained from the client's group or from the \fB_WMII_TAGS\fR window property. .RS -8 .TP keys The \fIkeys\fR file contains a list of keys which \fBwmii\fR will grab. Whenever these key combinations are pressed, the string which represents them are written to '/event' as: Key \fI\fR .TP event The \fIevent\fR file never returns EOF while \fBwmii\fR is running. It stays open and reports events as they occur. Included among them are: .RS 8 .TP \fI[Not]\fRUrgent \fI\fR \fI[Manager|Client]\fR \fI\fR's urgent hint has been set or unset. The second arg is \fI[Client]\fR if it's been set by the client, and \fI[Manager]\fR if it's been set by \fBwmii\fR via a control message. .TP \fI[Not]\fRUrgentTag \fI\fR \fI[Manager|Client]\fR A client on \fI\fR has had its urgent hint set, or the last urgent client has had its urgent hint unset. .TP Client\fI\fR \fI\fR \fI