A week ago I switched from Fluxbox to the Wmii Windowmanager and I have to say it’s the best WM I ever had.
It currently looks like this:
Which looks basically like every other WM except that Wmii uses some Magic which makes it really dynamic. As you can see it is tiled and fully manageable without a mouse, but supports floating windows aswell.
The important terms Wmii consists of:
- Clients, a single application window
- Columns, (vertical) containing a set of clients
- Tags, identifiers (like the tags you know form tag clouds) for clients
- Views, a set of clients with a specific tag (like Workspaces)
The main thing thats different from the other Windowmanagers are tags. The point is that a client can have multiple tags and thus can be on multiple Views (which are basically workspaces) at the same time.
For example in the screenshot above I have views called bar and web, and I usually read my emails on bar. Sometimes I need to write about something contained on a webpage, so with Wmii I just have to give my mail window the additional tag web, and it appears on my web view too. Since it is on both views the layout on bar doesn’t change, and I can even use completely different dimensions of the same window on each view.
Another very cool thing is that each column can have one of 3 different modes to display its clients:
- Equal size
- Stacked, only one client fully visible, like Tabbing
- Maximized, current client is maximized
Clients inside a column can be resized and moved between columns freely.
What makes Wmii even more dynamic is that it provides a virtual filesystem for the configuration and current state (like procfs), based on 9P. This enables you to script Wmii in almost any language.
Wmii contains an executable, wmiir, to interact with the core, and a shellscript for the basic configuration on startup.
There is also a ruby based implementation of the 9P2000 protocol, Ruby-ixp for Wmii, which is a bit faster than wmiir.
I found two Ruby projects that provide a nice interface for Wmii scripting in Ruby:
Note: The rumai page is currently in progress, and the script is about to be updated for the new Wmii release. Although ruby-wmii has a lot of features, rumai provides some additional, and really nice methods. So be sure to check out both.
Update: Since a lot of people are asking, I added my config files. Not sure if they are up to date, I changed some lines in standard-plugin, they are marked with the word CHANGE.
wmiirc-config
standard-plugin