sunaku's wmii configuration in Ruby and YAML
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:
wmii 3.9 or newer.
Note that the
display/status/arrangestatus bar applet requires a patched version of wmii-hg revision 2758 or greater in order to persist automated client arrangements.
Ruby 1.9.2 or newer.
I recommend using Ruby 1.9.3-p0 because it is significantly more power-efficient than previous Ruby 1.9.x releases.
Rumai 4.1.3 or newer:
gem install rumai -v '>= 4.1.3'
mv ~/.wmii ~/.wmii.backup mv ~/.wmii-hg ~/.wmii-hg.backup
git clone git://github.com/sunaku/wmiirc.git ~/.wmii ln -s ~/.wmii ~/.wmii-hg
cd ~/.wmii make branch
Read the inline documentation in the
~/.wmii/EXAMPLE.config.yamlfile to familiarize yourself with the configuration file's format and its sections.
~/.wmii/config.yamlfile to suit your needs. For a working example, see my personal configuration file.
If wmii is already running, run
~/.wmii/wmiircor invoke the "reload" action to apply your changes.
Ensure that your
~/.xinitrcallows 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 done
For a working example, see my personal configuration file.
startxand 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.