Background:
This is a Ruby[1] and YAML[2] based configuration of the wmii[3]
window manager. It manipulates wmii through the Rumai[4] library,
which comes with an interactive shell[5] for live experimentation.
[1] http://ruby-lang.org
[2] http://yaml.org
[3] http://wmii.suckless.org
[4] rumai(1)
[5] rumai(1)
Announcement:
I’m pleased to announce YAML imports, the next milestone in the
evolution of my Ruby wmiirc: http://github.com/sunaku/wmiirc.
The big idea, suggested by Nathan Neff, is that the config.yaml file
should be able to import other YAML files (“partials” as I call them).
This allows us to share and maintain common code while having a
different mix of status applets, keyboard shortcuts, color schemes,
and so on.
The YAML structure has also changed in this new version, so your old
config.yaml will not work as-is. In particular, the following
incompatible changes have been made:
(1) The “script” section now defines an array:
# Arbitrary logic to execute either before or after processing this
file.
# Any number of “before” and “after” subsections may be defined
within
# this section.
#
# script:
# - before:
# - after:
# # …
#
script:
(2) Keys in the"display:status" section have changed, and the code is
evaluated inside a Wmiirc::Status object (see “display/status.yaml”
for details).
Status bar applets.
- :
refresh: <number of seconds to wait before updating the
label>
script: <Ruby code to evaluate in the Wmiirc::Status
object that corresponds to this definition.>
label: <Ruby code whose result is displayed as the
content. This code is placed inside a
label() method in the Wmiirc::Status object
that corresponds to this definition.>
mouse_action:
:
You can refresh a particular status bar applet in Ruby using:
Status[“your applet name”].refresh
status:
(3) The “control:grab” section was moved to
“control:keyboard:grabmod”.
(4) The “control:key” section was split into “control:action” and
“control:keyboard_action” so that the same logic can be shared among
keyboard shortcuts and mouse events.
Keyboard shortcuts.
:
A key sequence may contain ${…} expressions which
are replaced with the value corresponding to ‘…’ in
the “control:keyboard” section of this configuration.
For example, if the “control:keyboard” section was:
control:
keyboard:
foo: Mod4
bar: y
and the following key sequence was used:
${foo}-${bar},${bar}
then after ${…} expression replacement,
that key sequence would appear like this:
Mod4-y,y
keyboard_action:
(5) The “program” section was renamed to “prefer”.
I think that’s about it.
Cheers.