wmii

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

wmii.1 (18071B)


      1 .TH "WMII" 1 "2010 June" "wmii-@VERSION@"
      2 
      3 .SH NAME
      4 .P
      5 wmii \- Window Manager Improved²
      6 
      7 .SH SYNOPSIS
      8 .P
      9 wmii \fI[\-a \fI<address>\fR]\fR \fI[\-r \fI<wmiirc>\fR]\fR 
     10 .P
     11 wmii \-v
     12 
     13 .SH DESCRIPTION
     14 .SS Overview
     15 .P
     16 \fBwmii\fR is a dynamic window manager for X11. In contrast to
     17 static window management the user rarely has to think about how
     18 to organize windows, no matter what he is doing or how many
     19 applications are used at the same time.  The window manager
     20 adapts to the current environment and fits to the needs of the
     21 user, rather than forcing him to use a preset, fixed layout and
     22 trying to shoehorn all windows and applications into it.
     23 
     24 .P
     25 \fBwmii\fR supports classic and tiled window management with
     26 extended keyboard and mouse control. Classic window management
     27 arranges windows in a floating layer in which tyen can be moved
     28 and resized freely. Tiled window management arranges windows in
     29 vertical columns.  Each column holds an arbitrary number
     30 arbitrary windows and arranges them vertically in a
     31 non\-overlapping manner. They can then be moved and resized,
     32 among and within columns, at will.
     33 
     34 .P
     35 \fBwmii\fR provides a virtual filesystem which represents the
     36 internal state similar to the procfs of Unix operating systems.
     37 Modifying this virtual filesystem results in changing the state
     38 of the window manager. The virtual filesystem service can be
     39 accessed through 9P\-capable client programs, like
     40 wmiir(1).  This allows simple and powerful remote control
     41 of the core window manager.
     42 
     43 .SS Command Line Arguments
     44 .TP
     45 \-a \fI<address>\fR
     46 Specifies the address on which \fBwmii\fR should listen for
     47 connections. The address takes the form
     48 \fB\fI<protocol>\fR!\fI<address>\fR\fR. The default is of the form:
     49 
     50 .nf
     51       unix!/tmp/ns.\fB$USER\fR.\fB${DISPLAY\fR%.0\fB}\fR/wmii
     52 .fi
     53 
     54 which opens a unix socket per Plan 9 Port conventions. To
     55 open a TCP socket, listening at port 4332 on the loopback
     56 interface, use:
     57 
     58 .nf
     59       tcp!localhost!4332
     60 .fi
     61 
     62 \fB$WMII_NAMESPACE\fR is automatically set to this value.
     63 
     64 .TP
     65 \-r \fI<wmiirc>\fR
     66 Specifies which rc script to run. If \fI<wmiirc>\fR consists of a
     67 single argument, \fB$WMII_CONFPATH\fR is searched before \fB$PATH\fR.
     68 Otherwise, it is passed to the shell for evaluation. The
     69 environment variables \fB$WMII_ADDRESS\fR and \fB$WMII_CONFPATH\fR are
     70 preset for the script.
     71 
     72 .SS Terminology
     73 .TP
     74 Display
     75 A running X server instance consisting of input
     76 devices and screens.
     77 .TP
     78 Screen
     79 A physical or virtual (Xinerama or Xnest(1))
     80 screen of an X display.
     81 .TP
     82 Window
     83 A (rectangular) drawable X object which is
     84 displayed on a screen, usually an application window.
     85 .TP
     86 Client
     87 An application window surrounded by a frame window
     88 containing a border and a titlebar.
     89 .TP
     90 Floating layer
     91 A screen layer of \fBwmii\fR on top of all other layers,
     92 where clients are arranged in a classic (floating)
     93 manner.  They can be resized or moved freely.
     94 .TP
     95 Managed layer
     96 A screen layer of \fBwmii\fR underneath the floating layer,
     97 where clients are arranged in a non\-overlapping
     98 (managed) manner.  Here, the window manager dynamically
     99 assigns each client a size and position.  The managed
    100 layer consists of columns.
    101 .TP
    102 Tag
    103 Alphanumeric strings which can be assigned to a
    104 client. This provides a mechanism to group clients with
    105 similar properties. Clients can have one tag, e.g.
    106 \fIwork\fR, or several tags, e.g.  \fIwork+mail\fR.
    107 Tags are separated with the \fI+\fR character.
    108 .TP
    109 View
    110 A set of clients containing a specific tag, quite
    111 similar to a workspace in other window managers. It
    112 consists of the floating and managed layers.
    113 .TP
    114 Column
    115 A column is a screen area which arranges clients
    116 vertically in a non\-overlapping way. Clients can be
    117 moved and resized between and within columns freely.
    118 .TP
    119 Bar
    120 The bar at the bottom of the screen displays a label
    121 for each view and allows the creation of arbitrary
    122 user\-defined labels.
    123 .TP
    124 Event
    125 An event is a message which can be read from a
    126 special file in the filesystem of \fBwmii\fR, such as a
    127 mouse button press, a key press, or a message written by
    128 a different 9P\-client.
    129 
    130 
    131 .SS Basic window management
    132 .P
    133 Running a raw \fBwmii\fR process without a wmiirc(1) script provides
    134 basic window management capabilities.  However, to use it
    135 effectively, remote control through its filesystem interface is
    136 necessary.  Without such a script, it is only possible to move
    137 and resize clients with the mouse, but not to change their tags
    138 or to switch views.  Other interactions, such as customizing the
    139 style, killing or retagging clients, and grabbing keys, cannot
    140 be achieved without accessing the filesystem.
    141 
    142 .P
    143 The filesystem can be accessed by connecting to the \fIaddress\fR
    144 of \fBwmii\fR with any 9P\-capable client, such as wmiir(1)
    145 
    146 .SS Actions
    147 .P
    148 The default configuration provides for a special menu of
    149 actions. These consist of either shell scripts in \fB$WMII_CONFPATH\fR
    150 or action definitions included in wmiirc.
    151 
    152 .P
    153 Here is a list of the default actions:
    154 
    155 .TS
    156 tab(^); ll.
    157  exec^Replace the window manager with another program
    158  quit^Leave the window manager nicely
    159  rehash^Refresh the program list
    160  showkeys^Display a list of key bindings recognized by wmii
    161  status^Periodically print date and load average to the bar
    162  welcome^Display a welcome message that contains the wmii tutorial
    163 .TE
    164 
    165 .SS Default Key Bindings
    166 .P
    167 All of the provided \fBwmiirc\fR scripts accept at least the following key
    168 bindings. They should also provide a \fBshowkeys\fR action to open a
    169 key binding quick\-reference.
    170 
    171 .SS Moving Around
    172 .TS
    173 tab(^); ll.
    174  \fBKey\fR^\fBAction\fR
    175  Mod\-h^Move to a window to the \fIleft\fR of the one currently focused
    176  Mod\-l^Move to a window to the \fIright\fR of the one currently focused
    177  Mod\-j^Move to the window \fIbelow\fR the one currently focused
    178  Mod\-k^Move to a window \fIabove\fR the one currently focused
    179  Mod\-space^Toggle between the managed and floating layers
    180  Mod\-t \fI<tag>\fR^Move to the view of the given \fI<tag>\fR
    181  Mod\-n^Move to the next view
    182  Mod\-b^Move to the previous view
    183  Mod\-\fI\fI[0\-9]\fR\fR^Move to the view with the given number
    184 .TE
    185 
    186 .SS Moving Things Around
    187 .TS
    188 tab(^); ll.
    189  \fBKey\fR^\fBAction\fR
    190  Mod\-Shift\-h^Move the current window \fIwindow\fR to a column on the \fIleft\fR
    191  Mod\-Shift\-l^Move the current window to a column on the \fIright\fR
    192  Mod\-Shift\-j^Move the current window below the window beneath it.
    193  Mod\-Shift\-k^Move the current window above the window above it.
    194  Mod\-Shift\-space^Toggle the current window between the managed and floating layer
    195  Mod\-Shift\-t \fI<tag>\fR^Move the current window to the view of the given \fI<tag>\fR
    196  Mod\-Shift\-\fI\fI[0\-9]\fR\fR^Move the current window to the view with the given number
    197 .TE
    198 
    199 .SS Miscellaneous
    200 .TS
    201 tab(^); ll.
    202  \fBKey\fR^\fBAction\fR
    203  Mod\-m^Switch the current column to \fImax mode\fR
    204  Mod\-s^Switch the current column to \fIstack mode\fR
    205  Mod\-d^Switch the current column to \fIdefault mode\fR
    206  Mod\-Shift\-c^\fBKill\fR the selected client
    207  Mod\-p \fI<program>\fR^\fBExecute\fR \fI<program>\fR
    208  Mod\-a \fI<action>\fR^\fBExecute\fR the named <action
    209  Mod\-Enter^\fBExecute\fR an \fB@TERMINAL@\fR
    210 .TE
    211 
    212 .SH Configuration
    213 .P
    214 If you feel the need to change the default configuration, then
    215 customize (as described above) the \fBwmiirc\fR action.  This
    216 action is executed at the end of the \fBwmii\fR script and does
    217 all the work of setting up the window manager, the key bindings,
    218 the bar labels, etc.
    219 
    220 .SS Filesystem
    221 .P
    222 Most aspects of \fBwmii\fR are controlled via the filesystem.  It is
    223 usually accessed via the wmiir(1) command, but it can be
    224 accessed by any 9P, including plan9port's 9P\fI[1]\fR, and can be
    225 mounted natively on Linux via v9fs\fI[1]\fR, and on Inferno (which man
    226 run on top of Linux). All data in the filesystem, including
    227 filenames, is UTF\-8 encoded. However, when accessed via
    228 wmiir(1), text is automatically translated to and from your
    229 locale encoding.
    230 
    231 .P
    232 The filesystem is, as are many other 9P filesystems, entirely
    233 synthetic. The files exist only in memory, and are not written
    234 to disk. They are generally initiated on wmii startup via a
    235 script such as wmiirc. Several files are used to issue commands,
    236 others simply act as if they were ordinary files (their contents
    237 are updated and returned exactly as written), though writing
    238 them has side\-effects (such as changing key bindings). A
    239 description of the filesystem layout and control commands
    240 follows.
    241 
    242 .SS Hierarchy
    243 .TP
    244 /
    245 Global control files
    246 .TP
    247 /client/\fI*\fR/
    248 Client control files
    249 .TP
    250 /tag/\fI*\fR/
    251 View control files
    252 .TP
    253 /lbar/, /rbar/
    254 Files representing the contents of the bottom bar
    255 
    256 
    257 .SS The / Hierarchy
    258 .TP
    259 colrules
    260 The \fIcolrules\fR file contains a list of
    261 rules which affect the width of newly created columns.
    262 Rules have the form:
    263 
    264 .nf
    265       /\fI<regex>\fR/ -> \fI<width>\fR\fI[+\fI<width>\fR]\fR*
    266 .fi
    267 
    268 Where,
    269 
    270 .nf
    271       \fI<width>\fR := \fI<percent of screen>\fR | \fI<pixels>\fRpx
    272 .fi
    273 
    274 When a new column, \fI<n>\fR, is created on a view whose name
    275 matches \fI<regex>\fR, it is given the \fI<n>\fRth supplied \fI<width>\fR.
    276 If there is no \fI<n>\fRth width, it is given 1/\fI<ncol>\fRth of the
    277 screen.
    278 
    279 .TP
    280 rules
    281 \fBPROVISIONAL\fR
    282 
    283 The \fIrules\fR file contains a list of rules that may be used
    284 to automatically set properties of new clients. Rules are
    285 specified as:
    286 
    287 .nf
    288       /\fI<regex>\fR/ \fI<key>\fR=\fI<value>\fR ...
    289 .fi
    290 
    291 where each \fI<key>\fR represents a command in the clients \fIctl\fR
    292 file, and each \fI<value>\fR represents the value to assign to it.
    293 The rules are applied when the client is first started and
    294 the contents of the \fIprops\fR file match the regular
    295 expression \fI<regex>\fR.
    296 
    297 Additionally, the following keys are accepted and have
    298 special meaning:
    299 
    300 .RS 8
    301 .TP
    302 continue
    303 Normally, when a matching rule is encountered, rule
    304 matching stops. When the continue key is provided
    305 (with any value), matching continues at the next
    306 rule.
    307 .TP
    308 force\-tags=\fI<tags>\fR
    309 Like \fItags\fR, but overrides any settings obtained
    310 obtained from the client's group or from the
    311 \fB_WMII_TAGS\fR window property.
    312 .RS -8
    313 .TP
    314 keys
    315 The \fIkeys\fR file contains a list of keys which
    316 \fBwmii\fR will grab. Whenever these key combinations
    317 are pressed, the string which represents them are
    318 written to '/event' as: Key \fI<string>\fR
    319 .TP
    320 event
    321 The \fIevent\fR file never returns EOF while
    322 \fBwmii\fR is running. It stays open and reports events
    323 as they occur. Included among them are:
    324 .RS 8
    325 .TP
    326 \fI[Not]\fRUrgent \fI<client>\fR \fI[Manager|Client]\fR
    327 \fI<client>\fR's urgent hint has been set or
    328 unset. The second arg is \fI[Client]\fR if it's
    329 been set by the client, and \fI[Manager]\fR if
    330 it's been set by \fBwmii\fR via a control
    331 message.
    332 .TP
    333 \fI[Not]\fRUrgentTag \fI<tag>\fR \fI[Manager|Client]\fR
    334 A client on \fI<tag>\fR has had its urgent hint
    335 set, or the last urgent client has had its
    336 urgent hint unset.
    337 .TP
    338 Client\fI<Click|MouseDown>\fR \fI<client>\fR \fI<button>\fR
    339 A client's titlebar has either been clicked or
    340 has a button pressed over it.
    341 .TP
    342 \fI[Left|Right]\fRBar\fI[Click|MouseDown]\fR \fI<button>\fR \fI<bar>\fR
    343 A left or right bar has been clicked or has a
    344 button pressed over it.
    345 .RS -8
    346 
    347 For a more comprehensive list of available events, see
    348 \fIwmii.pdf\fR\fI[2]\fR
    349 
    350 .TP
    351 ctl
    352 The \fIctl\fR file takes a number of messages to
    353 change global settings such as color and font, which can
    354 be viewed by reading it. It also takes the following
    355 commands:
    356 .RS 8
    357 .TP
    358 quit
    359 Quit \fBwmii\fR
    360 .TP
    361 exec \fI<prog>\fR
    362 Replace \fBwmii\fR with \fI<prog>\fR
    363 .TP
    364 spawn \fI<prog>\fR
    365 Spawn a new program, as if by the \fI\-r\fR flag.
    366 .RS -8
    367 
    368 
    369 .SS The /client/ Hierarchy
    370 .P
    371 Each directory under '/client/' represents an X11 client.
    372 Each directory is named for the X window id of the window the
    373 client represents, in the form that most X utilities recognize.
    374 The one exception is the special 'sel' directory, which
    375 represents the currently selected client.
    376 
    377 .TP
    378 ctl
    379 When read, the 'ctl' file returns the X window id
    380 of the client. The following commands may be written to
    381 it:
    382 .RS 8
    383 .TP
    384 allow \fI<flags>\fR
    385 The set of unusual actions the client is allowed to
    386 perform, in the same format as the tag set.
    387 .RS 8
    388 .TP
    389 activate
    390 The client is allowed to activate
    391 itself – that is, focus its window and,
    392 as the case may require, uncollapse it
    393 and select a tag it resides on. This
    394 flag must be set on a client if you wish
    395 it able to activate itself from the
    396 system tray.
    397 .RS -8
    398 .TP
    399 floating \fI<on | off | always | never>\fR
    400 Defines whether this client is likely to float when
    401 attached to a new view. Ordinarilly, the value
    402 changes automatically whenever the window is
    403 moved between the floating and managed layers.
    404 However, setting a value of \fIalways\fR or \fInever\fR
    405 overrides this behavior. Additionally, dialogs,
    406 menus, docks, and splash screens will always
    407 float unless this value is set to \fInever\fR.
    408 .TP
    409 fullscreen \fI<on | off | toggle>\fR
    410 Sets the client's fullscreen state.
    411 .TP
    412 group \fI<group id>\fR
    413 The client's group ID, or 0 if not part of a group.
    414 Clients tend to open with the same tags and in the
    415 same columns as the last active member of their
    416 group. Setting this property is only useful when
    417 done via the rules file.
    418 .TP
    419 kill
    420 Close the client's window.
    421 .TP
    422 pid
    423 Read\-only value of the PID of the program that
    424 owns the window, if the value is available and
    425 the process is on the same machine as wmii.
    426 .TP
    427 slay
    428 Forcibly kill the client's connection to the X
    429 server, closing all of its windows. Kill the parent
    430 process if the client's PID is available.
    431 .TP
    432 tags \fI<tags>\fR
    433 The client's tags. The same as the tags file.
    434 .TP
    435 urgent \fI<on | off | toggle>\fR
    436 Set or unset the client's urgent hint.
    437 .RS -8
    438 
    439 .TP
    440 label
    441 Set or read a client's label (title).
    442 .TP
    443 props
    444 Returns a clients class and label as:
    445 \fI<instance>\fR:\fI<class>\fR:\fI<label>\fR.
    446 .TP
    447 tags
    448 Set or read a client's tags. Tags are separated by
    449 \fB+\fR, \fB\-\fR, or \fB^\fR. Tags beginning with \fB+\fR are
    450 added, while those beginning with \fB\-\fR are removed and
    451 those beginning with \fB^\fR are toggled.  If the tag
    452 string written begins with \fB+\fR, \fB^\fR, or \fB\-\fR, the
    453 written tags are added to or removed from the client's
    454 set, otherwise the set is overwritten.
    455 
    456 
    457 .SS The /tag/ Hierarchy
    458 .P
    459 Each directory under '/tag/' represents a view, containing
    460 all of the clients with the given tag applied. The special
    461 \&'sel' directory represents the currently selected tag.
    462 
    463 .TP
    464 ctl
    465 The 'ctl' file can be read to retrieve the name
    466 of the tag the directory represents, or written with the
    467 following commands:
    468 .RS 8
    469 .TP
    470 select
    471 Select a client:
    472 select \fI[left|right|up|down]\fR 
    473 .P
    474 select \fI[\fI<row number>\fR|sel]\fR \fI[\fI<frame number>\fR]\fR 
    475 .P
    476 select client \fI<client>\fR
    477 .TP
    478 send
    479 Send a client somewhere:
    480 .RS 8
    481 .TP
    482 send \fI[\fI<client>\fR|sel]\fR \fI[up|down|left|right]\fR
    483 .TP
    484 send \fI[\fI<client>\fR|sel]\fR \fI<area>\fR
    485 Send \fI<client>\fR to the \fIn\fRth \fI<area>\fR
    486 .TP
    487 send \fI[\fI<client>\fR|sel]\fR toggle
    488 Toggle \fI<client>\fR between the floating and managed layer.
    489 .RS -8
    490 .TP
    491 swap
    492 Swap a client with another. Same syntax as send.
    493 
    494 .TP
    495 grow
    496 Grow or shrink a client.
    497 
    498 .nf
    499      grow \fI<frame>\fR \fI<direction>\fR \fI[\fI<amount>\fR]\fR
    500 .fi
    501 
    502 .TP
    503 nudge
    504 Nudge a client in a given direction.
    505 
    506 .nf
    507      grow \fI<frame>\fR \fI<direction>\fR \fI[\fI<amount>\fR]\fR
    508 .fi
    509 
    510 .RS -8
    511 Where the arguments are defined as follows:
    512 .RS 8
    513 .TP
    514 area
    515 Selects a column or the floating area.
    516 
    517 .nf
    518      area        ::= \fI<area_spec>\fR | \fI<screen_spec>\fR:\fI<area_spec>\fR
    519 .fi
    520 
    521 When \fI<screen_spec>\fR is omitted and \fI<area_spec>\fR is not "sel",
    522 0 is assumed. "sel" by itself represents the selected client no
    523 matter which screen it is on.
    524 
    525 .nf
    526      area_spec   ::= "~" | \fI<number>\fR | "sel"
    527 .fi
    528 
    529 Where "~" represents the floating area and \fI<number>\fR represents a column
    530 index, starting at one.
    531 
    532 .nf
    533      screen_spec ::= \fI<number>\fR
    534 .fi
    535 
    536 Where \fI<number>\fR representes the 0\-based Xinerama screen number.
    537 
    538 .TP
    539 frame
    540 Selects a client window.
    541 
    542 .nf
    543      frame ::= \fI<area>\fR \fI<index>\fR | \fI<area>\fR sel | client \fI<window-id>\fR
    544 .fi
    545 
    546 Where \fI<index>\fR represents the nth frame of \fI<area>\fR or \fI<window\-id>\fR is
    547 the X11 window id of the given client.
    548 
    549 .TP
    550 amount
    551 The amount to grow or nudge something.
    552 
    553 .nf
    554      amount ::= \fI<number>\fR | \fI<number>\fRpx
    555 .fi
    556 
    557 If "px" is given, \fI<number>\fR is interperated as an exact pixel count.
    558 Otherwise, it's interperated as a "reasonable" amount, which is
    559 usually either the height of a window's title bar, or its sizing
    560 increment (as defined by X11) in a given direction.
    561 .RS -8
    562 .TP
    563 index
    564 Read for a description of the contents of a tag.
    565 
    566 
    567 .SS The /rbar/, /lbar/ Hierarchy
    568 .P
    569 The files under '/rbar/' and '/lbar/' represent the
    570 items of the bar at the bottom of the screen. Files under
    571 \&'/lbar/' appear on the left side of the bar, while those
    572 under '/rbar/' appear on the right, with the leftmost item
    573 occupying all extra available space. The items are sorted
    574 lexicographically.
    575 
    576 .P
    577 The files may be read or written to obtain or alter the colors
    578 and text of the bars. The format is similar to the various \fIctl\fR
    579 files and should be self explanitory.
    580 
    581 .SH FILES
    582 .TP
    583 /tmp/ns.\fB$USER\fR.\fB${DISPLAY\fR%.0\fB}\fR/wmii
    584 The wmii socket file which provides a 9P service.
    585 .TP
    586 @GLOBALCONF@
    587 Global action directory.
    588 .TP
    589 @LOCALCONF@
    590 User\-specific action directory. Actions are first searched here.
    591 
    592 
    593 .SH ENVIRONMENT
    594 .TP
    595 \fB$HOME\fR, \fB$DISPLAY\fR
    596 See the section \fBFILES\fR above.
    597 
    598 .P
    599 The following variables are set and exported within \fBwmii\fR and
    600 thus can be used in actions:
    601 
    602 .TP
    603 \fB$WMII_ADDRESS\fR
    604 The address on which \fBwmii\fR is listening.
    605 .TP
    606 \fB$WMII_CONFPATH\fR
    607 The path that wmii searches for its configuration
    608 scripts and actions.
    609 .TP
    610 \fB$NAMESPACE\fR
    611 The namespace directory to use if no address is provided.
    612 
    613 .SH SEE ALSO
    614 .P
    615 wimenu(1), wmii9menu(1), witray(1), wmiir(1), wihack(1) 
    616 .P
    617 @DOCDIR@/wmii.pdf
    618 @DOCDIR@/FAQ
    619 
    620 .P
    621 \fI[1]\fR http://www.suckless.org/wiki/wmii/tips/9p_tips 
    622 .P
    623 \fI[2]\fR @DOCDIR@/wmii.pdf
    624 
    625 
    626 .\" man code generated by txt2tags 2.5 (http://txt2tags.sf.net)
    627 .\" cmdline: txt2tags -o- wmii.man1
    628