Ruby configuration for wmii window manager
Pull request Compare This branch is 160 commits behind sunaku:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

sunaku's wmii configuration in Ruby and YAML

September 2011 screenshot August 2011 screenshot July 2011 screenshot June 2011 screenshot May 2011 screenshot April 2011 screenshot March 2011 screenshot

This is a Ruby and YAML based configuration of the wmii window manager. It manipulates wmii through the Rumai library (which speaks directly to wmii via the 9P2000 protocol and features an interactive Ruby shell for live experimentation) and offers a near "Desktop Environment" experience:

  • Status bar applets with mouse, keyboard, and menu access.
  • System, dialog, and menu (with history) integration.
  • QWERTY, Dvorak, and Neo2 keyboard layouts.
  • Client grouping and mass manipulation thereof.
  • View and client access by menu and alphanumeric keys.
  • Automated client arrangements with optional persistence.
  • Detaching clients from current view and restoring them.
  • Zooming clients to temporary views and restoring them.
  • Closing all clients before exiting the window manager.
  • Script and stdout/err logging with automatic rotation.
  • Crash handling with error trace and recovery console.
  • Session state propagation between wmiirc instances.
  • And oh so much more... :-]

All of this can be configured to suit your needs, of course.

In the past, this configuration was described in the following articles:




mv ~/.wmii ~/.wmii.backup
mv ~/.wmii-hg ~/.wmii-hg.backup


git clone git:// ~/.wmii
ln -s ~/.wmii ~/.wmii-hg


cd ~/.wmii
make branch


  • Read the inline documentation in the ~/.wmii/EXAMPLE.config.yaml file to familiarize yourself with the configuration file's format and its sections.

  • Edit the ~/.wmii/config.yaml file to suit your needs. For a working example, see my personal configuration file.

  • If wmii is already running, run ~/.wmii/wmiirc or invoke the "reload" action to apply your changes.


  • Ensure that your ~/.xinitrc allows you to restart wmii without having to lose your running applications if wmii crashes or is accidentally killed:

      xterm -e tail -F ~/.wmii/wmiirc.log &
      while true; do wmii
        xmessage 'Do you really want to quit wmii?' \
                 -buttons 'Yes:0,No:1' -center \
                 -default 'No' -timeout 30 \
        && break

    For a working example, see my personal configuration file.

  • Run startx and wmii will automatically find and load this configuration.


cd ~/.wmii
make rebase


To use the development version of Rumai directly from its source code repository (instead of the currently published gem version), run this:

cd ~/.wmii
make rumai


Fork this project on GitHub and send pull requests.

Bugs, Features, Issues, Questions

File a report on the issue tracker.


Released under the ISC license. See the LICENSE file for details.