Machnus WMII configuration
This is some details about how I work with WMII.
Most of the concepts here is applicable to many WMs which I have run in the past, such as blackbox, FVWM, enlightenment, Ion and most likely other as well.
Hardware
My primary workstation uses four displays, three 17" TFTs at 1280x1024, and one 20" TFT at 1600x1200.
Primary input devices are a Kinesis Contoured Classic keyboard and a Wacom Intuos3 A5 tablet.
There is also a Logitech Trackman for relative mouse input.
Displays
I'm using the displays as multiple displays, i.e. they are not used as one large screen - no Xinerama.
I have no use of moving windows around between the displays, and I can't see the use of having a window larger than 1600x1200 anyway.
Also, most WMs don't handle virtual desktops correctly on Xinerama - switch virtual desktop, and ALL displays changes, that sucks!
Virtual desktops
These are preferably multiple desktops as some WMs define them, that is, when dragging a window halfway outside the desktop, it doesn't show up on any other desktops.
I work with 10 virtual desktops, divided in five main categories.
Each window is placed according to the following list:
- Development
- Xterms
- Internet
- Graphics/communication
- Multimedia
Development is usually gvim instances for longer coding sessions. Writing HTML (like this page) also takes place in this category.
Xterms which I execute general commands in (i.e not coding or editing longer documents) goes here. Configuration file editing, system maintenance and file management mostly.
Internet is mostly browser sessions and file downloads through the browser. wget downloads is done in the Xterm desktops.
Graphics/communication is where I do graphics work in mostly Gimp and Inkscape. 3D graphics applications like Blender also goes here. Communication is graphical email clients (for testing, I'm running muttng in Xterm section for my primary mailsystem), various IM clients and IRC communication.
Multimedia desktops gets video and music playing.
For each category, I have two virtual desktops, one primary, and one secondary.
Some WMs support having virtual desktops in two dimensions. When this is the case,
I have them configured with secondary desktop on the lower row like this:

When the WM doesn't support two dimensional workspace setups, the workspaces goes like the image shown below.
The reason for this is that relative workspace navigation should move among primary workspaces before reaching secondary workspaces. Though this is something I rarely uses.

Keybindings
I mostly navigate my systems with the keyboard.
Visual searching for windows (like Windows taskbar, or OS X Exposé function) is terribly slow compared to keyboard navigation when one knows exactly where a specific window is.
Display keybindings
Since the Wacom tablet has absolute addressing (a certain pen location corresponds directly to a certain mouse cursor position on the screen), there is no way to move the mouse cursor between the displays.
Thus, I always use keybindings to do this. AltGr+[1-4] on my current systems (No, I don't use the F-keys, they are too far away and sucks). AltGr on the Kinesis is the Alt on the right thumb.
Many window managers have a problem moving the mouse cursor to a display
with no windows on it and shifting the focus to the display (this is resolved with strict focus-follows-mouse, my prefered focus policy, as the root window then retrieves the focus automatically).
WMII-3 has this problem. The solution to this problem in WMII-3 is the following (well, a hack to go around the actual problem really :)) :
#!/bin/sh
DISP=`echo $DISPLAY|cut -c 2`
POSITION=$(xwarppointer get)
DISPLAY=:$DISP.$1 /usr/local/bin/wmiiwarp $POSITION
DISPLAY=:$DISP.$1 xwarppointer abspos $POSITION
xwarppointer is a nifty little util which can be found here. The downside to this hack is that it only works for the keyboard, and not when moving the cursor with a mouse between the screens. This isn't a problem for me though, as I never do that :)
Workspace keybindings
Here I assign each workspace category a number (see list in Virtual Desktops), and binds primary and secondary workspaces to different modifiers.
With these bindings together with the display bindings, I can go wherever I want in just two key combinations. I haven't implemented window moving in my WMII configuration yet.
| Workspace |
Primary |
Secondary |
| Development |
ctrl+1 |
ctrl+shift+1 |
| Xterms |
ctrl+2 |
ctrl+shift+2 |
| Internet |
ctrl+3 |
ctrl+shift+3 |
| Graphics/comm |
ctrl+4 |
ctrl+shift+4 |
| Multimedia |
ctrl+5 |
ctrl+shift+5 |
| Move to Development |
mod1+ctrl+1 |
mod1+ctrl+shift+1 |
| Move to Xterms |
mod1+ctrl+2 |
mod1+ctrl+shift+2 |
| Move to Internet |
mod1+ctrl+3 |
mod1+ctrl+shift+3 |
| Move to Graphics/comm |
mod1+ctrl+4 |
mod1+ctrl+shift+4 |
| Move to Multimedia |
mod1+ctrl+5 |
mod1+ctrl+shift+5 |
xclip keybindings
I like the X11 select/copy, though it can sometimes be pretty annoying when you have an important selection and happens to select a space or something.
So I developed a small clip management server to be able to save an arbitrary number of texts (I use five). It builds upon xclip (download here).
The xclip server (requires Ruby): download (it's nothing fancy)
To interface with it, use these two scripts:
clipget <buffer no>:
echo "get $1" | nc localhost 13721 | xclip
clipset <buffer no>:
echo -e -n "put $1\n$(xclip -o)" | nc -c localhost 13721
I have bound mod1+shift+[1-5] to clipset, and shift+[1-5] for clipget.
As I had some extra space on the monitor display (the top one), I included five windows which display the contents of the buffers.
Other keybindings
There are some other keybindings as well, for starting a browser, gvims and so on.
Also some keybindings for handling the music server.
WMII configuration
Here is my WMII configuration file as of 2006-05-21
I'm currently using wmii-3.
Screenshot
Here is a screenshot of my system.
Configuration files
.vimrc
VIM color scheme (it's a modified greyblue)
rxvt startup script
xbindkeys configuration (guile format)
Contact me
Magnus Engström
magnus@aoeu.info
#aoeu.info on irc.aoeu.info
#wmii on irc.oftc.net