Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
My fork of the WMII window manager.
C Python Shell Groff Makefile Ruby Other
Branch: master

Fix color updates when changing client focus from key events

This patch was originally posted on this Arch Linux forum thread:

  https://bbs.archlinux.org/viewtopic.php?id=176489

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

  http://dl.suckless.org/wmii/wmii+ixp-3.9.2.tbz

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.

Corey
latest commit fc3e1989d4
@cmtptr cmtptr authored committed
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).
FAQ Use IXP_ASSERT_VERSION macro.
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.
config.mk [python] Use distutils to compile and install pygmi/pyxp.

README

Abstract
--------
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.


Requirements
------------
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 http://libs.suckless.org/.  On debian, you should be
able to obtain all dependencies by running `make deb-dep`.  Python is
recommended for more advanced configurations.


Installation
------------
First, edit config.mk to match your local setup.

To build, simply run:
	make

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.


Configuration
-------------
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
in @LOCALCONF@.

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

Credits
-------
The following people have contributed especially to wmii in various
ways:

- 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>


References
----------
[1] http://9p.cat-v.org
[2] http://plan9.us

Something went wrong with that request. Please try again.