Entries from January 2010 ↓

The Road to One Point Zerodom

A comment on my previous blog post asks, “when are you going to release a new version of Superswitcher?” For those who don’t know, superswitcher is my window management utility that aims to be a compelling replacement for Alt-Tab.

It’s true that I haven’t made a release in years, and known crashers have been fixed since then. Yes, I’ve been lazy. Let’s fix that. Specifically, I aim to do a superswitcher release for the upcoming Ubuntu 10.04 LTS release (Lucid).

Since there’s been no feature changes in more than two years, let’s call this the 1.0 release. There remains a number of open bugs, but in my experience it’s pretty stable. Calling it 1.0 brings a few points into focus:

First, superswitcher theoretically builds on GTK+ 2.6, libwnck 2.10, and XFree86 (not just X.org), but I’d be surprised if people are still running 2005-era distributions. I’d like to modernize the dependencies to what ships on Lucid — the less #ifdef’s in the code, the better.

Second, compiz has never really got on well with superswitcher. I agree with Havoc Pennington that “it’s a total PITA for apps and pagers if there are two ways to implement workspaces“. I’d started compiz support, but superswitcher-on-compiz is still not really usable, it crashes more often, the code became more complicated, and fundamentally, I personally don’t have an itch to scratch (I like my Cheerios window manager) and nobody’s sending patches. I’m therefore aiming to not support compiz at all (rather than “support” it badly) for superswitcher 1.0.

Third, there is currently a runtime flag for experimental “live window thumbnails”. This might become a compile-time option, but I doubt that I’ll ever finish it, so I’m tempted to remove this entirely too. Again it’s buggy (it doesn’t show thumbnails for windows on other workspaces), my unscientific feeling is that it’s noticably slower to paint, and it isn’t really helpful (visually) unless the thumbnails are so large that the layout is kind of ugly. I’m also not fully confident with how XComposite, XDamage, and XRender are all supposed to work without causing X errors, and comments in the metacity source suggest that I’m not alone.

People have asked about moving superswitcher’s features into metacity (GNOME’s default window manager). The metacity maintainers are certainly aware of superswitcher, but feel that it should remain a separate program, just like Devil’s Pie, which is fair enough. Maybe I’ll write my own window manager one day, but that’s another story for another time.

So, dear superswitcher users, any comments?