Up to WM Report


Twindy showing its very controlled real estate.

Twindy's Preferences tab, showing the Button editing setup.

Release date of
this version
Release date of
latest version
20070504 0.45b 20061023 0.45b 20061023 GPL
Miscellaneous Details
Memory usage
key bindings*
10136  3884  16136
Strictly speaking Twindy has neither virtual desktops nor a taskbar, but it has something very similar to each of them.

Uses the JUCE library ("slightly modified") from http://www.rawmaterialsoftware.com/juce/, but since it's modified he distributes it with the WM and you don't have to worry about it. Written in C++. Several of my standard questions are moot here because the interface is so unusual: there are no icons on the desktop, there is no desktop to click on with the mouse, there's no desktop menu, I very much doubt there's compliance with any of the WM standards. There's no iconization (everything is tabbed), no effects, no keybindings. The buttons can act as app launchers or menus to more apps. When it applies, the mouse focus is sloppy.

The documentation is pretty much non-existent on the assumption that everything is obvious when you start using the WM. In fact, most of it is, but a little documentation wouldn't go astray.
Window Decorations
The entire WM can be considered one enormous window decoration ... There's no such thing as shaped windows.
Colours can be changed any way you want. No change of shape or position or anything else.


The author liked the setup and work flow of Tracktion ( http://www.rawmaterialsoftware.com/tracktion.php, an audio/midi sequencer, so he set out to emulate the interface and design. I love that the idea is radically different than anything else out there, but ultimately I found it fairly restrictive and the loss of screen real estate was a problem. Also, there are still a few bugs to be ironed out.

The screen is divided into several areas, the most obvious being the top (larger) and bottom (smaller) application windows. The top strip is tabs that are essentially workspaces. The tabs to the left allow you to access any running apps on the current desktop. The buttons in the lower left area allow you to launch apps (via a single click or through a menu system - you choose in preferences). Notice that the left strip of buttons launches apps in the top window and the right strip of buttons launches apps in the lower window. I didn't find this obvious, having somehow assumed that apps could be made to migrate between the two windows. This is where documentation would have been a plus.

I found quite a few idiosyncracies and a few flat out bugs. Standard X cut and paste (highlight and then middle-click) doesn't work in Preferences - it would be desirable there for pasting in application configuration from other files. Neither CapsLock nor Shift work at all in Preferences, making it very hard to put any sort of capitalized text into configs. Apps started in ~/.xinitrc before the exec twindy line (such as terms) simply ... disappear. In its defence, Twindy does provide a way to run programs at Startup. Running a new app in the lower one simply kills the previous app in the window. Neither window handles the resizing of applications (such as changing terminal fonts) well: the upper window contains it but loses a lot of space, but the lower window just lets the app run all over the place including right off screen. Finally, I think a big "Exit" button without a confirmation dialogue is a bad idea. Many WMs do this without confirmation, but the "Exit" command is usually well hidden in a menu system so you would never hit it by accident. I actually clicked "Exit" a couple times while in Preferences thinking it would exit Preferences. It sure did.

Twindy needs a lot of work and I don't think I would ever use it because of limitations that are deliberately built into it, but it's an interesting and different idea. The Linux/Unix world desperately needs different ideas that aren't simply imitating Windows - yes, it's an imitation of another program, but it's gone off in a new and unusual direction and makes you think about how WMs are implemented.

by giles