My fork of the WMII window manager.
C Python Shell Groff Makefile Ruby Other
Latest commit fc3e198 Feb 10, 2014 @cmtptr cmtptr committed with Fix color updates when changing client focus from key events
This patch was originally posted on this Arch Linux forum thread:

It was created against the combined wmii+ixp release found here:

I'm having a hard time remembering the details of the bug this patch
fixes now, but here is the e-mail I sent to Kris Maglione and Arch's
wmii package maintainer if you're interested:

> The problem comes down to the focusout() function in cmd/wmii/event.c.
> It tests for the condition that the event's mode is NotifyGrab and
> there is a KeyPress event later in the queue, and if both of these
> fail then it proceeds to handle the FocusOut event, eventually
> clearing disp.focus to c_magic in focusout_event()
> (cmd/wmii/client.c).  Then, when the KeyPress event finally does
> arrive, client_focus() is unable to update the previously-focused
> client's border with normcolors because disp.focus was already
> cleared.
> My fix simply tweaks focusout()'s logic so that the else branch never
> executes if ev->mode == NotifyGrab, regardless of whether there's a
> KeyPress event in the queue yet.  I don't know whether it should be
> considered a bug in X that we received a FocusOut-NotifyGrab event
> before the KeyPress event is available, but this change seems to work.

Failed to load latest commit information.
alternative_wmiircs Run wipescreens on Screenchange event in python/wmiirc. Jun 4, 2014
cmd Fix color updates when changing client focus from key events Apr 18, 2015
debian [debian] Fix some lintian warnings. Jul 7, 2010
doc Add doc/mkfile for building wmii.pdf with an optional MAINFONT variab… Sep 27, 2011
examples [menu] Update manual. Add file completion example. Oct 7, 2010
img [menu] Add vertical mode. Oct 7, 2010
include [wimenu] Add paste key binding. Oct 7, 2010
lib wmii-fixed-aspect-fix.patch: forgot what this does Apr 18, 2015
man Rebuild wimenu.1 Aug 2, 2014
mk compile fails on Ubuntu 12.10 without this patch Apr 18, 2015
rc Fix Notice command. Dec 9, 2013
test Rearrange some things. Jun 14, 2010
util Move pkg-config libs after other LDFLAGS. Closes issue #245. Oct 20, 2011
.hgignore [python] Use distutils to compile and install pygmi/pyxp. Jun 27, 2010
.hgsigs Added signature for changeset 3ea520ff8668c297a5c6b667a68b3c3a1f44fec5 May 31, 2007
DISTRIBUTORS Fix some DISTRIBUTORS typos spotted by Snader_LB (OFTC). May 27, 2011
FAQ Use IXP_ASSERT_VERSION macro. Jun 17, 2010
LICENSE Add locale charset crud. Jun 6, 2010
Makefile [menu] Update manual. Add file completion example. Oct 7, 2010
NEWS [python] Use distutils to compile and install pygmi/pyxp. Jun 27, 2010
PKGBUILD [arch] Fix pkgdesc for pyxp/pygmi. Jul 7, 2010
README Fix last commit. Jun 12, 2010
TODO Best just read the diff. Aug 25, 2008 [python] Use distutils to compile and install pygmi/pyxp. Jun 27, 2010


wmii is a dynamic window manager for X11.  It supports classic and
tiled window management with extended keyboard, mouse, and 9P-based[1]
remote control.  It consists of the wmii(1) window manager and the
wmiir(1) the remote access utility.

In order to build wmii you need the Xlib header files and libixp.
xmessage is used by the default scripts.  Libixp, if not provided, can
be obtained from  On debian, you should be
able to obtain all dependencies by running `make deb-dep`.  Python is
recommended for more advanced configurations.

First, edit to match your local setup.

To build, simply run:

To install, run the following, as root if necessary:
	make install

On debian, you should only have to run `make deb` to create a debian
package.  No further configuration should be necessary.

Running wmii
Add the following line to your .xinitrc to start wmii using startx:

    until wmii; do :; done

In order to connect wmii to a specific display, make sure that the
DISPLAY environment variable is set correctly.  For example:

    DISPLAY=:1 wmii

This will start wmii on display :1.

The configuration of wmii is done by customizing the rc script wmiirc,
which remotely controls the window manager and handles various events.
The main wmiirc script lives in @GLOBALCONF@ while wmiirc_local goes

More advanced versions of wmiirc are provided in python and ruby.
For more information on them, see alternative_wmiircs/README.

The following people have contributed especially to wmii in various

- Christoph Wegscheider <christoph dot wegscheider at wegi dot net>
- Georg Neis <gn at suckless dot org>
- Uwe Zeisberger <zeisberg at informatik dot uni-freiburg dot de>
- Uriel <uriel99 at gmail dot com>
- Scot Doyle <scot at scotdoyle dot com>
- Sebastian Hartmann <seb dot wmi at gmx dot de>
- Bernhard Leiner <bleiner at gmail dot com>
- Jonas Domeij <jonas dot domeij at gmail dot com>
- Vincent <10 dot 50 at free dot fr>
- Oliver Kopp <olly at flupp dot de>
- Sebastian Roth <sebastian dot roth at gmail dot com>
- Nico Golde <nico at ngolde dot de>
- Steve Hoffman <steveh at g2switchworks dot com>
- Christof Musik <christof at senfdax dot de>
- Steffen Liebergeld <perl at gmx dot org>
- Tobias Walkowiak <wal at ivu dot de>
- Sander van Dijk <a dot h dot vandijk at gmail dot com>
- Salvador Peiro <saoret dot one at gmail dot com>
- Anthony Martin <ality at pbrane dot org>
- Icarus Sparry <wmii at icarus dot freeuk dot com>
- Norman Golisz <norman dot golisz at arcor dot de>
- Stefano K. Lee <wizinblack at gmail dot com >
- Stefan Tibus <sjti at gmx dot net>
- Neptun <neptun at gmail dot com>
- Daniel Wäber <_wabu at web dot de>