Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
WMII(1)			    General Commands Manual		       WMII(1)

NAME
       wmii - Window Manager Improved

SYNOPSIS
       wmii [-a	<address>] [-r <wmiirc>]

       wmii -v

DESCRIPTION
   Overview
       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.

       wmii supports classic and tiled window management  with	extended  key-
       board 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.

       wmii provides a virtual filesystem which	represents the internal	 state
       similar	to  the	procfs of Unix operating systems.  Modifying this vir-
       tual 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.

       wmii basically consists of clients, columns, views, and the bar,	 which
       are described in	detail in the Terminology section.

   Command Line	Arguments
       -a <address>
	      Specifies	 the  address  on which	wmii should listen for connec-
	      tions. The address takes the form	<protocol>!<address>. The  de-
	      fault is of the form:

	      unix!/tmp/ns.$USER.${DISPLAY%.0}/wmii

	      which opens a unix socket	per Plan 9 Port	conventions. To	open a
	      TCP  socket,  listening  at port 4332 on the loopback interface,
	      use:

	      tcp!localhost!4332

	      $WMII_NAMESPACE is automatically set to this value.

       -r <wmiirc>
	      Specifies	which rc script	to run.	If <wmiirc> consists of	a sin-
	      gle argument, $WMII_CONFPATH is searched before  $PATH.	Other-
	      wise,  it	is passed to the shell for evaluation. The environment
	      variables	$WMII_ADDRESS and $WMII_CONFPATH are  preset  for  the
	      script.

	      == Terminology ==

       Display
	      A	 running  X  server  instance  consisting of input devices and
	      screens.

       Screen A	physical or virtual (Xinerama or Xnest(1)) screen of an	X dis-
	      play. A screen displays a	bar window and a view at a time.

       Window A	(rectangular) drawable	X  object  which  is  displayed	 on  a
	      screen, usually an application window.

       Client An  application window surrounded	by a frame window containing a
	      border and a titlebar.

       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.

       Managed layer
	      A	 screen	layer of wmii behind the floating layer, where clients
	      are arranged in a	non-overlapping	(managed) way.	Here, the win-
	      dow manager dynamically assigns each client a size and position.
	      The managed layer	consists of columns.

       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.   work,  or  several  tags,  e.g.
	      work+mail.  Tags are separated with the +	character.

       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.

       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 re-
	      spectively.  Clients can be moved	and resized between and	within
	      columns freely.

       Bar    The  bar	at  the	bottom of the screen displays a	label for each
	      view and allows the creation of arbitrary	user-defined labels.

       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.

   Basic window	management
       Running a raw wmii process without a wmiirc(1)  script  provides	 basic
       window  management  capabilities	 already.   However,  to use it	effec-
       tively, remote control through its filesystem interface	is  necessary.
       By  default  it	is  only usable	with the mouse in conjunction with the
       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  address  of  wmii
       with any	9P-capable client, such	as wmiir(1)

   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 '/usr/local/etc/wmii' to	'$HOME/.wmii' 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.

       Here is a list of the default actions:

	quit	  leave	the window manager nicely
	status	  periodically print date and load average to the bar
	welcome	  display a welcome message that contains the wmii tutorial
	wmiirc	  configure wmii

   Default Key Bindings
       All of the provided wmiirc scripts accept at least  the	following  key
       bindings.  They	should	also  provide  a showkeys action to open a key
       binding quick-reference.

   Moving Around
	Key	      Action
	Mod-h	      Move to a	window to the left of the one currently	focused
	Mod-l	      Move to a	window to the right of the one currently focused
	Mod-j	      Move to the window below the one currently focused
	Mod-k	      Move to a	window above the one currently focused
	Mod-space     Toggle between the managed and floating layers
	Mod-t <tag>   Move to the view of the given <tag>
	Mod-[0-9]     Move to the view with the	given number

   Moving Things Around
	Key		    Action
	Mod-Shift-h	    Move the current window window to a	column on the left
	Mod-Shift-l	    Move the current window to a column	on the right
	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 <tag>   Move the current window to the view	of the given <tag>
	Mod-Shift-[0-9]	    Move the current window to the view	with the given number

   Miscellaneous
	Key		  Action
	Mod-m		  Switch the current column to max mode
	Mod-s		  Switch the current column to stack mode
	Mod-d		  Switch the current column to default mode
	Mod-Shift-c	  Kill the selected client
	Mod-p <program>	  Execute <program>
	Mod-a <action>	  Execute the named <action
	Mod-Enter	  Execute an xterm

Configuration
       If you feel the need to change the  default  configuration,  then  cus-
       tomize (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.

   Filesystem
       Most aspects of wmii are	controlled via the filesystem.	It is  usually
       accessed	 via  the  wmiir(1) command, but it can	be accessed by any 9P,
       including plan9port's 9P[1], and	can be mounted natively	on  Linux  via
       v9fs[1],	and on Inferno (which man run on top of	Linux).

       The  filesystem	is,  as	 are  many other 9P filesystems, entirely syn-
       thetic. The files exist only in memory, and are not  written  to	 disk.
       They  are  generally  initiated	on  wmii  startup via a	script such as
       rc.wmii or wmiirc. Several files	read commands, others simply act as if
       they were ordinary files	(their contents	are updated and	 returned  ex-
       actly as	written), though writing them has side-effects (such as	chang-
       ing  key	 bindings). A description of the filesystem layout and control
       commands	follows.

   Hierarchy
       /      Global control files

       /client/*/
	      Client control files

       /tag/*/
	      View control files

       /lbar/, /rbar/
	      Files representing the contents of the bottom bar

   The / Hierarchy
       colrules
	      The colrules file	contains a list	 of  rules  which  affect  the
	      width of newly created columns.  Rules have the form:

		    /<regex>/ -> <width>[+<width>]*

	      When  a  new  column, n, is created on a view whose name matches
	      <regex>, the nth given <width> percentage	of the screen is given
	      to it. If	there is no nth	width, 1/ncolth	of the screen is given
	      to it.

       tagrules
	      The tagrules file	contains a list	of rules similar to  the  col-
	      rules. These rules specify the tags a client is to be given when
	      it is created.  Rules are	specified:

		    /<regex>/ -> <tag>[+<tag>]*

	      When  a  client's	 <name>:<class>:<title>	matches	<regex>, it is
	      given the	tagstring <tag>. There are two special tags. !,	 which
	      is deprecated, and identical to sel, represents the current tag.
	      ~	represents the floating	layer.

       keys   The  keys	 file  contains	 a  list of keys which wmii will grab.
	      Whenever these key combinations are pressed,  the	 string	 which
	      represents them are written to '/event' as: Key <string>

       event  The event	file never returns EOF while wmii is running. It stays
	      open and reports events as they occur. Included among them are:

	       [Not]Urgent <client> [Manager|Client]
		      <client>'s urgent	hint has been set or unset. The	second
		      arg  is  [Client]	 if  it's  been	set by the client, and
		      [Manager]	if it's	been set by wmii via  a	 control  mes-
		      sage.

	       [Not]UrgentTag <tag> [Manager|Client]
		      A	 client	 on  <tag> has had its urgent hint set,	or the
		      last urgent client has had its urgent hint unset.

	       Client<Click|MouseDown> <client>	<button>
		      A	client's titlebar has either been  clicked  or	has  a
		      button pressed over it.

	       [Left|Right]Bar[Click|MouseDown]	<button> <bar>
		      A	 left  or  right  bar has been clicked or has a	button
		      pressed over it.

       For a more comprehensive	list of	available events, see wmii.pdf[2]

       ctl    The ctl file takes a number of messages to  change  global  set-
	      tings such as color and font, which can be viewed	by reading it.
	      It also takes the	following commands:

	       quit   Quit wmii

	       exec <prog>
		      Replace wmii with	<prog>

	       spawn <prog>
		      Spawn a new program, as if by the	-r flag.

   The /client/	Hierarchy
       Each  directory under '/client/'	represents an X11 client.  Each	direc-
       tory is named for the X window id of the	window the client  represents,
       in  the form that most X	utilities recognize.  The one exception	is the
       special	'sel'  directory,  which  represents  the  currently  selected
       client.

       ctl    When read, the 'ctl' file	returns	the X window id	of the client.
	      The following commands may be written to it:

	       kill   Close the	client's window. This command will likely kill
		      the  X  client  in  the future (including	its other win-
		      dows), while the close command will replace it.

	       Urgent <on | off	| toggle>
		      Set or unset the client's	urgent hint.

	       Fullscreen <on |	off | toggle>

       label  Set or read a client's label (title).

       props  Returns a	clients	class and label	as: <name>:<class>:<label>

       tags   Set or read a client's tags. Tags	are separated by + or -.  Tags
	      beginning	with + are added, while	those beginning	with - are re-
	      moved.   If the tag string written begins	with + or -, the writ-
	      ten tags are added to or removed from the	client's  set,	other-
	      wise, the	set is overwritten.

   The /tag/ Hierarchy
       Each  directory	under '/tag/' represents a view, containing all	of the
       clients with the	given tag applied. The special 'sel' directory	repre-
       sents the currently selected tag.

       ctl    The  'ctl'  file can be read to retrieve the name	of the tag the
	      directory	represents, or written with the	following commands:

	       select Select a client: select [left|right|up|down]

	       select [<row number>|sel] [<frame number>]

	       select client <client>

	       send   Send a client somewhere:

		       send [<client>|sel] [up|down|left|right]

		       send [<client>|sel] <area>
			      Send <client> to the nth <area>

		       send [<client>|sel] toggle
			      Toggle <client> between the floating and managed
			      layer.

	       swap   Swap a client with another. Same syntax as send.

	       grow   Grow or shrink a client.

			   grow	<frame>	<direction> [<amount>]

	       nudge  Nudge a client in	a given	direction.

			   grow	<frame>	<direction> [<amount>]

       Where the arguments are defined as follows:

	       area   Selects a	column or the floating area.

			   area	       ::= <area_spec> | <screen_spec>:<area_spec>

		      When <screen_spec> is omitted  and  <area_spec>  is  not
		      "sel",  0	is assumed. "sel" by itself represents the se-
		      lected client no matter which screen it is on.

			   area_spec   ::= "~" | <number> | "sel"

		      Where "~"	represents the floating	area and <number> rep-
		      resents a	column index, starting at one.

			   screen_spec ::= <number>

		      Where <number> representes the 0-based  Xinerama	screen
		      number.

	       frame  Selects a	client window.

			   frame ::= <area> <index> | <area> sel | client <window-id>

		      Where  <index>  represents  the  nth  frame of <area> or
		      <window-id> is the X11 window id of the given client.

	       amount The amount to grow or nudge something.

			   amount ::= <number> | <number>px

		      If "px" is given,	<number> is interperated as  an	 exact
		      pixel count.  Otherwise, it's interperated as a "reason-
		      able"  amount,  which  is	usually	either the height of a
		      window's title bar, or its sizing	increment (as  defined
		      by X11) in a given direction.

       index  Read for a description of	the contents of	a tag.

   The /rbar/, /lbar/ Hierarchy
       The files under '/rbar/'	and '/lbar/' represent the items of the	bar at
       the  bottom of the screen. Files	under '/lbar/' appear on the left side
       of the bar, while those under '/rbar/' appear on	the  right,  with  the
       leftmost	item occupying all extra available space. The items are	sorted
       lexicographically.

       The  files  may be read to obtain the colors and	text of	the bars.  The
       colors are at the beginning of the string, represented as a tuple of  3
       hex  color  codes  for  the foreground, background, and border, respec-
       tively. When writing the	bar files, the colors may be  omitted  if  the
       text would not otherwise	appear to contain them.

FILES
       /tmp/ns.$USER.${DISPLAY%.0}/wmii
	      The wmii socket file which provides a 9P service.

       /usr/local/etc/wmii
	      Global action directory.

       $HOME/.wmii
	      User-specific action directory. Actions are first	searched here.

ENVIRONMENT
       $HOME, $DISPLAY
	      See the section FILES above.

       The  following  variables are set and exported within wmii and thus can
       be used in actions:

       $WMII_ADDRESS
	      The address on which wmii	is listening.

       $NAMESPACE
	      The namespace directory to use if	no address is provided.

SEE ALSO
       dmenu(1), wmiir(1)

       /usr/local/share/doc/wmii/wmii.pdf

       [1] http://www.suckless.org/wiki/wmii/tips/9p_tips

       [2] /usr/local/share/doc/wmii/wmii.pdf

wmii-3.9.2			   Oct,	2009			       WMII(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=wmii&sektion=1&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help