Skip to content
My fork of the WMII window manager.
C Python Shell Groff Makefile Ruby Other
Find file
Latest commit fc3e198 @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.
cmd Fix color updates when changing client focus from key events
debian [debian] Fix some lintian warnings.
doc Add doc/mkfile for building wmii.pdf with an optional MAINFONT variab…
examples [menu] Update manual. Add file completion example.
img [menu] Add vertical mode.
include [wimenu] Add paste key binding.
lib wmii-fixed-aspect-fix.patch: forgot what this does
man Rebuild wimenu.1
mk compile fails on Ubuntu 12.10 without this patch
rc Fix Notice command.
test Rearrange some things.
util Move pkg-config libs after other LDFLAGS. Closes issue #245.
.hgignore [python] Use distutils to compile and install pygmi/pyxp.
.hgsigs Added signature for changeset 3ea520ff8668c297a5c6b667a68b3c3a1f44fec5
DISTRIBUTORS Fix some DISTRIBUTORS typos spotted by Snader_LB (OFTC).
LICENSE Add locale charset crud.
Makefile [menu] Update manual. Add file completion example.
NEWS [python] Use distutils to compile and install pygmi/pyxp.
PKGBUILD [arch] Fix pkgdesc for pyxp/pygmi.
README Fix last commit.
TODO Best just read the diff. [python] Use distutils to compile and install pygmi/pyxp.


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>


Something went wrong with that request. Please try again.