wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit 13e3c32a79350ebd5abfcae1dc2bde9ecf942745
parent d7c68da518298da57da6983d1755412750172dd1
Author: Kris Maglione <jg@suckless.org>
Date:   Sun, 17 Jun 2007 13:30:10 -0400

More info from /tag/*/ctl.

Diffstat:
cmd/wmii/area.c | 28++++++++++++++++++++++++++--
cmd/wmii/column.c | 7+++++++
cmd/wmii/event.c | 15+++++++--------
cmd/wmii/fns.h | 5+++++
cmd/wmii/frame.c | 11+++++++++++
cmd/wmii/fs.c | 10++++++----
cmd/wmii/key.c | 3+--
cmd/wmii/view.c | 59+++++++++++++++++++++++++++++++++++++++++------------------
man/wmii.1 | 178++++++++++++++++++++++++++++++++++++++++++-------------------------------------
man/wmii.tex | 162++++++++++++++++++++++++++++++++++++++++++-------------------------------------
10 files changed, 284 insertions(+), 194 deletions(-)

diff --git a/cmd/wmii/area.c b/cmd/wmii/area.c @@ -20,6 +20,28 @@ area_selclient(Area *a) { return nil; } +uint +area_idx(Area *a) { + View *v; + Area *ap; + uint i; + + v = a->view; + for(i = 0, ap = v->area; a != ap; ap = ap->next) + i++; + return i; +} + +char* +area_name(Area *a) { + static char buf[16]; + + if(a->floating) + return "~"; + snprintf(buf, sizeof(buf), "%d", area_idx(a)); + return buf; +} + Area * create_area(View *v, Area *pos, uint w) { static ushort id = 1; @@ -234,11 +256,13 @@ detach_from_area(Frame *f) { cp = win2client(c->trans); if(cp && cp->frame) { a = cp->sel->area; - if(a->view == v) + if(a->view == v) { focus_area(a); + return; + } } } - else if(v->area->next->frame) + if(v->area->next->frame) focus_area(v->area->next); }else assert(a->sel); diff --git a/cmd/wmii/column.c b/cmd/wmii/column.c @@ -30,6 +30,13 @@ str2colmode(const char *str) { return -1; } +char* +colmode2str(int i) { + if(i < nelem(modes)) + return modes[i]; + return nil; +} + static Divide* getdiv(Divide **dp) { WinAttr wa; diff --git a/cmd/wmii/event.c b/cmd/wmii/event.c @@ -134,7 +134,6 @@ focusin(XEvent *e) { XFocusChangeEvent *ev; Window *w; Client *c; - XEvent me; ev = &e->xfocus; /* Yes, we're focusing in on nothing, here. */ @@ -162,13 +161,9 @@ focusin(XEvent *e) { handle(w, focusin, ev); else if(ev->mode == NotifyGrab) { if(ev->window == scr.root.w) - if(XCheckMaskEvent(display, KeyPressMask, &me)) { - /* wmii has grabbed focus */ - screen->hasgrab = &c_root; - dispatch_event(&me); - } + screen->hasgrab = &c_root; /* Some unmanaged window has grabbed focus */ - if((c = screen->focus)) { + else if((c = screen->focus)) { print_focus(&c_magic, "<magic>"); screen->focus = &c_magic; if(c->sel) @@ -179,6 +174,7 @@ focusin(XEvent *e) { static void focusout(XEvent *e) { + XEvent me; XFocusChangeEvent *ev; Window *w; @@ -192,7 +188,10 @@ focusout(XEvent *e) { if(ev->mode == NotifyUngrab) screen->hasgrab = nil; - if((w = findwin(ev->window))) + if((ev->mode == NotifyGrab) + && XCheckMaskEvent(display, KeyPressMask, &me)) + dispatch_event(&me); + else if((w = findwin(ev->window))) handle(w, focusout, ev); } diff --git a/cmd/wmii/fns.h b/cmd/wmii/fns.h @@ -3,6 +3,8 @@ */ /* area.c */ +char *area_name(Area *a); +uint area_idx(Area *a); Area *create_area(View*, Area *pos, uint w); void destroy_area(Area*); Area *area_of_id(View*, ushort id); @@ -60,6 +62,7 @@ void arrange_column(Area*, Bool dirty); void resize_column(Area*, int w); void resize_colframe(Frame*, Rectangle*); int str2colmode(const char *str); +char *colmode2str(int i); Area *new_column(View*, Area *pos, uint w); /* event.c */ @@ -69,6 +72,7 @@ uint flushevents(long even_mask, Bool dispatch); void print_focus(Client *c, char *to); /* frame.c */ +uint frame_idx(Frame *f); Frame *create_frame(Client*, View*); void remove_frame(Frame*); void insert_frame(Frame *pos, Frame*); @@ -157,6 +161,7 @@ Client *view_selclient(View*); char *message_view(View *v, Message *m); void restack_view(View*); uchar *view_index(View*); +uchar *view_ctl(View *v); void destroy_view(View*); void update_views(void); uint newcolw(View*, int i); diff --git a/cmd/wmii/frame.c b/cmd/wmii/frame.c @@ -7,6 +7,17 @@ #include "dat.h" #include "fns.h" +uint +frame_idx(Frame *f) { + Frame *fp; + uint i; + + fp = f->area->frame; + for(i = 1; fp != f; fp = fp->anext) + i++; + return i; +} + Frame * create_frame(Client *c, View *v) { static ushort id = 1; diff --git a/cmd/wmii/fs.c b/cmd/wmii/fs.c @@ -639,10 +639,6 @@ fs_read(Ixp9Req *r) { write_buf(r, f->p.client->name, strlen(f->p.client->name)); respond(r, nil); return; - case FsFTctl: - write_buf(r, f->p.view->name, strlen(f->p.view->name)); - respond(r, nil); - return; case FsFBar: write_buf(r, f->p.bar->buf, strlen(f->p.bar->buf)); respond(r, nil); @@ -669,6 +665,12 @@ fs_read(Ixp9Req *r) { write_buf(r, buf, n); respond(r, nil); return; + case FsFTctl: + buf = (char*)view_ctl(f->p.view); + n = strlen(buf); + write_buf(r, buf, n); + respond(r, nil); + return; case FsFEvent: respond_event(r); return; diff --git a/cmd/wmii/key.c b/cmd/wmii/key.c @@ -182,9 +182,8 @@ kpress_seq(XWindow w, Key *done) { if((done->mod == mod) && (done->key == key)) emulate_key_press(mod, key); /* double key */ else { - if(!found) { + if(!found) XBell(display, 0); - } /* grabbed but not found */ else if(!found->tnext && !found->next) write_event("Key %s\n", found->name); else diff --git a/cmd/wmii/view.c b/cmd/wmii/view.c @@ -331,45 +331,68 @@ rects_of_view(View *v, uint *num, Frame *ignore) { /* XXX: This will need cleanup */ uchar * view_index(View *v) { + Rectangle *r; Frame *f; Area *a; - char *buf; - uint i, n; - int len; + char *buf, *end; + uint i; - len = sizeof(buffer); buf = buffer; - for((a=v->area), (i=0); a && len > 0; (a=a->next), i++) { + end = buffer+sizeof(buffer); + for((a=v->area), (i=0); a && buf < end-1; (a=a->next), i++) { if(a->floating) - n = snprintf(buf, len, "# ~ %d %d\n", + buf += snprintf(buf, end-buf, "# ~ %d %d\n", Dx(a->r), Dy(a->r)); else - n = snprintf(buf, len, "# %d %d %d\n", + buf += snprintf(buf, end-buf, "# %d %d %d\n", i, a->r.min.x, Dx(a->r)); - buf += n; - len -= n; - for(f=a->frame; f && len > 0; f=f->anext) { - Rectangle *r = &f->r; + for(f=a->frame; f && buf < end-1; f=f->anext) { + r = &f->r; if(a->floating) - n = snprintf(buf, len, "~ 0x%x %d %d %d %d %s\n", + buf += snprintf(buf, end-buf, "~ 0x%x %d %d %d %d %s\n", (uint)f->client->w.w, - r->min.x, r->min.y, Dx(*r), Dy(*r), + r->min.x, r->min.y, + Dx(*r), Dy(*r), f->client->props); else - n = snprintf(buf, len, "%d 0x%x %d %d %s\n", + buf += snprintf(buf, end-buf, "%d 0x%x %d %d %s\n", i, (uint)f->client->w.w, r->min.y, Dy(*r), f->client->props); - if(len - n < 0) - return (uchar*)buffer; - buf += n; - len -= n; } } return (uchar*)buffer; } +uchar * +view_ctl(View *v) { + Area *a; + char *buf, *end; + uint i; + + buf = buffer; + end = buffer+sizeof(buffer); + + buf += snprintf(buf, end-buf, "%s\n", v->name); + + /* select <area>[ <frame>] */ + buf += snprintf(buf, end-buf, "select %s", area_name(v->sel)); + if(v->sel->sel) + buf += snprintf(buf, end-buf, " %d", frame_idx(v->sel->sel)); + buf += snprintf(buf, end-buf, "\n"); + + /* select client <client> */ + if(v->sel->sel) + buf += snprintf(buf, end-buf, "select client 0x%x\n", clientwin(v->sel->sel->client)); + + for(a = v->area->next, i = 1; a && buf < end-1; a = a->next, i++) { + buf += snprintf(buf, end-buf, "colmode %d %s\n", + i, colmode2str(a->mode)); + } + return (uchar*)buffer; +} + void update_views(void) { View *n, *v, *old; diff --git a/man/wmii.1 b/man/wmii.1 @@ -1,5 +1,5 @@ '\" t -.\" Manual page created with latex2man on Mon Jun 11 12:08:17 EDT 2007 +.\" Manual page created with latex2man on Mon Jun 11 15:48:33 EDT 2007 .\" NOTE: This file is generated, DO NOT EDIT. .de Vb .ft CW @@ -28,130 +28,137 @@ wmii .PP wmii 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. +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. .PP wmii supports classic and tiled window management with -extended keyboard and mouse control. The classic window management -arranges windows in a floating layer in which windows can be moved -and resized freely. The tiled window management is based on columns -which split up the screen horizontally. Each column handles -arbitrary windows and arranges them vertically in a nonoverlapping -way. They can then be moved and resized between and within columns -at will. +extended keyboard and mouse control. The classic window +management arranges windows in a floating layer in which windows +can be moved and resized freely. The tiled window management is +based on columns which split up the screen horizontally. Each +column handles arbitrary windows and arranges them vertically in +a nonoverlapping way. They can then be moved and resized +between and within columns at will. .PP wmii 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 9Pcapable client programs, like \fIwmiir\fP(1)\&. -This -allows simple and powerful remote control of the core window -manager. +Modifying this virtual filesystem results in changing the state +of the window manager. The virtual filesystem service can be +accessed through 9Pcapable client programs, like +\fIwmiir\fP(1)\&. +This allows simple and powerful remote control +of the core window manager. .PP wmii -basically consists of clients, columns, views, and the -bar, which are described in detail in the \fBTerminology\fP +basically consists of clients, columns, views, and +the bar, which are described in detail in the +\fBTerminology\fP section. .PP .SS TERMINOLOGY .PP .TP Display -A running X server instance consisting of input devices -and screens. +A running X server instance consisting of input +devices and screens. .TP Screen A physical or virtual (Xinerama or \fIXnest\fP(1)) -screen -of an X display. A screen displays a bar window and a view at a time. +screen of an X display. A screen displays a bar window +and a view at a time. .TP Window -A (rectangular) drawable X object which is displayed on a -screen, usually an application 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. +An application window surrounded by a frame window +containing a border and a titlebar. .TP Floating layer A screen layer of wmii -on top of all other -layers, where clients are arranged in a classic (floating) way. -They can be resized or moved freely. +on top of +all other layers, where clients are arranged in a +classic (floating) way. They can be resized or moved +freely. .TP Managed layer A screen layer of wmii -behind the floating layer, -where clients are arranged in a nonoverlapping (managed) way. Here, -the window manager dynamically assigns each client a size and position. -The managed layer consists of columns. +behind the +floating layer, where clients are arranged in a +nonoverlapping (managed) way. 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\fP, +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\fP, or several tags, e.g. \fIwork+mail\fP\&. -.PP Tags are separated with the \fI+\fP character. .TP View -A set of clients containing a specific tag, quite similiar to a -workspace in other window managers. It consists of the floating and -managed layers. +A set of clients containing a specific tag, quite +similiar 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. Columns provide three different modes, which -arrange clients with equal size, stacked, or maximized respectively. -Clients can be moved and resized between and within columns freely. +A column is a screen area which arranges clients +vertically in a non\-overlapping way. Columns provide +three different modes, which arrange clients with equal +size, stacked, or maximized respectively. 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 userdefined labels. +The bar at the bottom of the screen displays a label +for each view and allows the creation of arbitrary +userdefined labels. .TP Event -An event is a message which can be read from a special file in the -filesystem of wmii, -such as a mouse button press, a key press, or -a message written by a different 9P\-client. +An event is a message which can be read from a +special file in the filesystem of wmii, +such as a +mouse button press, a key press, or a message written by +a different 9P\-client. .PP .SS BASIC WINDOW MANAGEMENT .PP Running a raw wmii process without a \fIwmiirc\fP(1) -script -provides basic window management capabilities already. However, to -use it effectively, remote control through its filesystem interface -is necessary. By default it is only usable with the mouse in -conjunction with the \fIMod1 (Alt)\fP -modifier key. Other -interactions, such as customizing the style, killing or retagging -clients, and grabbing keys, cannot be achieved without accessing the -filesystem. -.PP -The filesystem can be accessed by connecting to the \fIaddress\fP +script provides basic window management capabilities already. +However, to use it effectively, remote control through its +filesystem interface is necessary. By default it is only usable +with the mouse in conjunction with the \fIMod1 (Alt)\fP +modifier key. Other interactions, such as customizing the style, +killing or retagging clients, and grabbing keys, cannot be +achieved without accessing the filesystem. +.PP +The filesystem can be accessed by connecting to the +\fIaddress\fP of wmii -with any 9P\-capable client, such as \fIwmiir\fP(1) +with any 9P\-capable client, such +as \fIwmiir\fP(1) .PP .SS ACTIONS .PP An action is a shell script in the default setup, but it can actually be any executable file. It is executed usually by -selecting it from the actions menu. You can customize an action by -copying it from the global action directory +selecting it from the actions menu. You can customize an action +by copying it from the global action directory CONFPREFIX/wmii\-3.5 to $HOME/.wmii\-3.5 and then -editing the copy to fit your needs. Of course you can also create -your own actions there; make sure that they are executable. +editing the copy to fit your needs. Of course you can also +create your own actions there; make sure that they are +executable. .PP Here is a list of the default actions: .PP @@ -346,9 +353,9 @@ If you feel the need to change the default configuration, then customize (as described above) the wmiirc action. This action is executed at the end of the wmii -script and does all -the work of setting up the window manager, the key bindings, the bar -labels, etc. +script and does +all the work of setting up the window manager, the key bindings, +the bar labels, etc. .PP .SH FILESYSTEM .PP @@ -556,15 +563,16 @@ Returns a clients class and label as: tags Set or read a client\&'s tags. Tags are seperated by \fI+\fP -or {\-}. Tags begining with \fI+\fP -are added, -while those begining with \fI\-\fP -are removed. If the -tag string written begins with \fI+\fP -or \fI\-\fP, -the -written tags are added to or removed from the client\&'s -set, otherwise, the set is overwritten. +or \fI\-\fP\&. +Tags begining with \fI+\fP +are +added, while those begining with \fI\-\fP +are removed. +If the tag string written begins with \fI+\fP +or +\fI\-\fP, +the written tags are added to or removed from +the client\&'s set, otherwise, the set is overwritten. .PP .SS The /tag/ Hierarchy .PP @@ -648,13 +656,15 @@ them. .PP .TP /tmp/ns.USER.{DISPLAY%\&.0}/wmii -The wmii socket file which provides a 9P service. +The wmii socket file +which provides a 9P service. .TP CONFPREFIX/wmii\-3.5 Global action directory. .TP $HOME/.wmii\-3.5 -User\-specific action directory. Actions are first searched here. +User\-specific action directory. Actions +are first searched here. .PP .SH ENVIRONMENT .PP diff --git a/man/wmii.tex b/man/wmii.tex @@ -11,94 +11,102 @@ \subsection{Overview} \Prog{wmii} 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. +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. \Prog{wmii} supports classic and tiled window management with -extended keyboard and mouse control. The classic window management -arranges windows in a floating layer in which windows can be moved -and resized freely. The tiled window management is based on columns -which split up the screen horizontally. Each column handles -arbitrary windows and arranges them vertically in a non\-overlapping -way. They can then be moved and resized between and within columns -at will. +extended keyboard and mouse control. The classic window +management arranges windows in a floating layer in which windows +can be moved and resized freely. The tiled window management is +based on columns which split up the screen horizontally. Each +column handles arbitrary windows and arranges them vertically in +a non\-overlapping way. They can then be moved and resized +between and within columns at will. \Prog{wmii} 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 \Cmd{wmiir}{1}. This -allows simple and powerful remote control of the core window -manager. +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 +\Cmd{wmiir}{1}. This allows simple and powerful remote control +of the core window manager. -\Prog{wmii} basically consists of clients, columns, views, and the -bar, which are described in detail in the \textbf{Terminology} -section. +\Prog{wmii} basically consists of clients, columns, views, and +the bar, which are described in detail in the +\textbf{Terminology} section. \subsection{Terminology} \begin{description} -\item[Display] A running X server instance consisting of input devices - and screens. -\item[Screen] A physical or virtual (Xinerama or \Cmd{Xnest}{1}) screen - of an X display. A screen displays a bar window and a view at a time. -\item[Window] A (rectangular) drawable X object which is displayed on a - screen, usually an application window. -\item[Client] An application window surrounded by a frame window containing - a border and a titlebar. -\item[Floating layer] A screen layer of \Prog{wmii} on top of all other - layers, where clients are arranged in a classic (floating) way. - They can be resized or moved freely. -\item[Managed layer] A screen layer of \Prog{wmii} behind the floating layer, - where clients are arranged in a non\-overlapping (managed) way. Here, - the window manager dynamically assigns each client a size and position. - The managed layer consists of columns. -\item[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. \emph{work}, or several tags, e.g. \emph{work+mail}. - +\item[Display] A running X server instance consisting of input + devices and screens. +\item[Screen] A physical or virtual (Xinerama or \Cmd{Xnest}{1}) + screen of an X display. A screen displays a bar window + and a view at a time. +\item[Window] A (rectangular) drawable X object which is + displayed on a screen, usually an application window. +\item[Client] An application window surrounded by a frame window + containing a border and a titlebar. +\item[Floating layer] A screen layer of \Prog{wmii} on top of + all other layers, where clients are arranged in a + classic (floating) way. They can be resized or moved + freely. +\item[Managed layer] A screen layer of \Prog{wmii} behind the + floating layer, where clients are arranged in a + non\-overlapping (managed) way. Here, the window + manager dynamically assigns each client a size and + position. The managed layer consists of columns. +\item[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. + \emph{work}, or several tags, e.g. \emph{work+mail}. Tags are separated with the \emph{+} character. -\item[View] A set of clients containing a specific tag, quite similiar to a - workspace in other window managers. It consists of the floating and - managed layers. -\item[Column] A column is a screen area which arranges clients vertically in a - non-overlapping way. Columns provide three different modes, which - arrange clients with equal size, stacked, or maximized respectively. - Clients can be moved and resized between and within columns freely. -\item[Bar] The bar at the bottom of the screen displays a label for each view and - allows the creation of arbitrary user\-defined labels. -\item[Event] An event is a message which can be read from a special file in the - filesystem of \Prog{wmii}, such as a mouse button press, a key press, or - a message written by a different 9P-client. +\item[View] A set of clients containing a specific tag, quite + similiar to a workspace in other window managers. It + consists of the floating and managed layers. +\item[Column] A column is a screen area which arranges clients + vertically in a non-overlapping way. Columns provide + three different modes, which arrange clients with equal + size, stacked, or maximized respectively. Clients can + be moved and resized between and within columns freely. +\item[Bar] The bar at the bottom of the screen displays a label + for each view and allows the creation of arbitrary + user\-defined labels. +\item[Event] An event is a message which can be read from a + special file in the filesystem of \Prog{wmii}, such as a + mouse button press, a key press, or a message written by + a different 9P-client. \end{description} \subsection{Basic window management} -Running a raw \Prog{wmii} process without a \Cmd{wmiirc}{1} script -provides basic window management capabilities already. However, to -use it effectively, remote control through its filesystem interface -is necessary. By default it is only usable with the mouse in -conjunction with the \emph{Mod1 (Alt)} modifier key. Other -interactions, such as customizing the style, killing or retagging -clients, and grabbing keys, cannot be achieved without accessing the -filesystem. +Running a raw \Prog{wmii} process without a \Cmd{wmiirc}{1} +script provides basic window management capabilities already. +However, to use it effectively, remote control through its +filesystem interface is necessary. By default it is only usable +with the mouse in conjunction with the \emph{Mod1 (Alt)} +modifier key. Other interactions, such as customizing the style, +killing or retagging clients, and grabbing keys, cannot be +achieved without accessing the filesystem. -The filesystem can be accessed by connecting to the \emph{address} -of \Prog{wmii} with any 9P-capable client, such as \Cmd{wmiir}{1} +The filesystem can be accessed by connecting to the +\emph{address} of \Prog{wmii} with any 9P-capable client, such +as \Cmd{wmiir}{1} \subsection{Actions} An action is a shell script in the default setup, but it can actually be any executable file. It is executed usually by -selecting it from the actions menu. You can customize an action by -copying it from the global action directory +selecting it from the actions menu. You can customize an action +by copying it from the global action directory \File{CONFPREFIX/wmii-3.5} to \File{\$HOME/.wmii-3.5} and then -editing the copy to fit your needs. Of course you can also create -your own actions there; make sure that they are executable. +editing the copy to fit your needs. Of course you can also +create your own actions there; make sure that they are +executable. Here is a list of the default actions: @@ -159,9 +167,9 @@ Mod-Enter & \Prog{Execute} an \Prog{xterm} \\ If you feel the need to change the default configuration, then customize (as described above) the \Prog{wmiirc} action. This -action is executed at the end of the \Prog{wmii} script and does all -the work of setting up the window manager, the key bindings, the bar -labels, etc. +action is executed at the end of the \Prog{wmii} script and does +all the work of setting up the window manager, the key bindings, +the bar labels, etc. \section{Filesystem} @@ -279,11 +287,11 @@ represents the currently selected client. \item[props] Returns a clients class and label as: \emph{name}:\emph{class}:\emph{label} \item[tags] Set or read a client's tags. Tags are seperated by - \emph{+} or {-}. Tags begining with \emph{+} are added, - while those begining with \emph{-} are removed. If the - tag string written begins with \emph{+} or \emph{-}, the - written tags are added to or removed from the client's - set, otherwise, the set is overwritten. + \emph{+} or \emph{-}. Tags begining with \emph{+} are + added, while those begining with \emph{-} are removed. + If the tag string written begins with \emph{+} or + \emph{-}, the written tags are added to or removed from + the client's set, otherwise, the set is overwritten. \end{description} \subsubsection{The /tag/ Hierarchy} @@ -335,9 +343,11 @@ them. \section{FILES} \begin{description} -\item[/tmp/ns.$USER.${DISPLAY\%.0}/wmii] The wmii socket file which provides a 9P service. +\item[/tmp/ns.$USER.${DISPLAY\%.0}/wmii] The wmii socket file + which provides a 9P service. \item[CONFPREFIX/wmii-3.5] Global action directory. -\item[\$HOME/.wmii-3.5] User-specific action directory. Actions are first searched here. +\item[\$HOME/.wmii-3.5] User-specific action directory. Actions + are first searched here. \end{description} \section{ENVIRONMENT}