Search Results for 'superswitcher' ↓

Look, Mum. Fans!

Some stranger (and former Ion-head) called Sean has nice words to say about Superswitcher, saving him the effort of writing his own “go to window by name” program. Superswitcher wasn’t actually “designed as the ideal test case for libwnck”, but it certainly does give the Window Navigator Construction Kit a workout.

When a Switch is On, It’s On

I’ve just rolled version 0.6 of Superswitcher – a compelling replacement for Alt-Tab.

You can find the download links (source tarball, or Ubuntu .deb packages) off the project homepage. Tijl Van den Broeck has kindly put together an amd64.deb, for those who swing that way. I haven’t tried it myself, but I’m sure that it’s absolutely frabjous.

The key change since 0.5 is the ever-so-subtle but “forehead slapping, why didn’t I think of that” handy feature of not crashing immediately on Ubuntu Gutsy 7.10. There was an libwnck API/ABI change (in the active_window_changed signal handler), as unstable libraries sometimes do, somewhere on the journey from Feisty 7.04.  This API/ABI change broke 0.5-era superswitcher binaries, but as far as I can tell, it’s all peachy again with the latest and greatest.

There’s also window previews (a.k.a. thumbnailing), but this is highly experimental – they’ll need to invent letters that come before alpha to describe this one. I’ve seen a thumbnail-enabled Superswitcher crash whilst playing with Compiz, but I haven’t been able to reproduce this reliably.

Even without blingy thumbnails, Superswitcher and Compiz haven’t really played nicely together in the past. Prior to Gutsy, I haven’t actually used Compiz as my day-to-day window manager, since I’m a grumpy old bastard who thinks, “Ugh, hard-to-read text” when presented with a semi-transparent window. But with Compiz now part of the Ubuntu out-of-the-box experience, Superswitcher’s compatibility will probably see some attention soon. You’ll read about it here first. Unless, of course, you send me a patch instead. Yes, you.

P1mp My Switcher

Thanks to John Stowers’ link drop (and his offhand remark that someone could "use this as the basis for window previews in libwnck") and a rainy Sunday, I’ve now added some XComposite / XRender blingfactor to SuperSwitcher (yeah, SS first, maybe libwnck later, once I actually understand how all this X voodoo works). In a word, thumbnails:

superswitcher-composite.png

Compare that to the version 0.1 screenshot:

It’s (more than) a little buggy at the moment (e.g. it doesn’t show minimized windows’ contents, or those from different workspaces, and it doesn’t speak XDamage events), but if you want to play with it, the code has just hit the SVN repo.

If you don’t recognize the video playing in MPlayer, then get your eyes onto some sweet, sweet Chaser.

Hello, World

I mean, g’day Planet.

Hi. I’m Nigel Tao. You might know me from such GNOMEly things as:

I would like to echo Prashanth Mohan’s recommendation of Rob Pike’s Newsqueak talk (and the elegance of the Sieve of Eratosthenes program). Also, there are many more Google Tech Talks, where all sorts of interesting (and not so interesting) technical people drop by Google HQ and, uh, talk. For example, Aza Raskin of Humanized gave one recently titled Away with Applications: The Death of the Desktop demonstrating Enso (which I’ve previously mentioned).

Warning: this paragraph of interest to programming language buffs only :-) . In Newsqueak, variable declaration looks like i: int (compared to C’s int i), and assignment is the bog-standard (although mathematically lax) i = i + 1. One cute little syntactical feature is that you can combine declaration and assignment to write i := 42 to (loosely speaking) be a short-hand equivalent to i: typeof(42); i = 42, sort of like how i += 1 is short-hand for i = i + 1. It looks like Pascal’s old-school assignment operator, but it is in fact two separate operators, and you can even put whitespace in between to get i: =42.

Finally (in the small print section), these posts are entirely my own personal opinions and do not necessarily represent the views of my employer, blah blah blah, yadda yadda yadda.

Shameless Plug (of a Memory Leak)

Superswitcher version 0.5 is out.

  • Plugged a memory leak. Previously, we were not destroying cairo contexts.
  • First draft of a D-Bus interface.
  • New add and remove workspace buttons.
  • Respects #define MAX_REASONABLE_WORKSPACES 36 as per metacity.
  • –trigger-on-caps-lock split into –also-trigger… and –only-trigger…

The memory leak turned out to be that I wrote gdk_cairo_create without having a corresponding cairo_destroy. You’d think compilers these days should be able to pick up an error like that. C++ has ’smart pointers’ and destructors, but hot damn is it ugly. Garbage collected languages take away the problem of explicit memory management, but can be sluggish (yeah, yeah, it’s debatable), which might be quite important if you’re on limited resources.

I like C. I get it, and as far as software goes, it’s small and simple enough that I think I get all of it. I can read C, and I can understand what’s happening. Compare this to C++, where overloading and operators and multiple inheritance and references instead of pointers means that when you get an obscure bug, it hurts. Even when you have a simple bug, the compiler error messages are horrendous to get your head around. Apparently there’s a new C++ standard (”C++0x”, due Real Not-Soon Now) brewing that will ‘fix’ some of these problems, but I expect it to suck because they’re adding more things rather than taking stuff out. To mix metaphors, you can’t polish a backwards compatibility crutch.

Java and Python are (relatively) easy to write in, but for serious stuff, you have to “learn the architecture of the machine”, so says Samba guru Jeremy Allison. You gotta understand pointers, and that something is slow because you’re copying lots of char arrays in a dumb way. Having read what I just wrote, I am turning into such an old fart, but then again, I’m like 48 in computer years.

What I really want is a programming language that reads like Python and runs like C. That should be its mission statement: reads like Python, runs like C. Maybe I should enrol in a research degree, spend a few years inventing Yet Another Best Programming Language Ever, and whinge that nobody uses it even though it is the Best Programming Language Ever. If I do, you’ll surely hear about it. In the meantime, enjoy a less leaky window switcher.

Closing thought: what’s the biggest memory leak anyone’s ever seen? This fuzzy screenshot shows Firefox clocking over 1.5GB…

Been There, Done That, Got Loads of Free T-Shirts

Linux.conf.au was pretty cool – there were OLPCs to play with, faces put with names (and nicks), an awesome Open Day full of shiny demos, and a luncheon pilgrimage to the Red Hat Noodle Bar.

I gave a talk about superswitcher at the GNOME miniconf. It wasn’t the sexiest topic, and I was a little nervous (I haven’t really done a lot of presenting before), but I don’t think it sucked. It was a better experience than one I had a few years ago, when it was really cold, and my hands were stiff and frozen just before I had to get up on stage, so I thought to run some warm water over my hands, only to turn the tap on far too fast, and the splash gave me a nice big wet patch right over my groin :-) . Unfortunately, the video appears to be lost. There are OGGs of Davyd’s introduction and t-shirt handing out (trust me, it’s not that interesting) beforehand, and the Avahi talk afterwards, but not the one of me. So much for my 15 minutes of fame, but really, there wasn’t a lot to it (if you want to find out what superswitcher does, just download and try it). At least Davyd took a photo.

Anyway, I talked a little bit about the wnck library, and if you want to start playing around with that, then I have some wnck python example programs that are pretty short and simple. Another example I gave is how easy a (Python) D-Bus program can be. Here’s a 4-liner that tickles superswitcher (yeah, you will need a version after 0.4):

#!/usr/bin/env python
import dbus
dbus.SessionBus().get_object('superswitcher.SuperSwitcher',
                            '/superswitcher/SuperSwitcher').TogglePopup()

Finally, Enso was just released, albeit Windows-only and trial-ware (yeah, they gotta eat). From my biased viewpoint, it looks sort of Deskbarish (they mention Python plug-ins!), sort of Superswitcherish (they switch windows by find-as-you-type title search, and they trigger on Caps Lock!), sort of Quicksilverish (Santa is still yet to gift me a BlingBook Pro), sort of Google Desktop Ctrl-Ctrl-ish, surely sort of other things I haven’t seen yet, and heavily influenced by the late Jef Raskin’s The Humane Interface (certainly interesting reading for UI designer wannabes, especially those who want to get away from the “nothing’s changed since the 90s, overlapping windows, files and folders, icons on a desktop” rut). The Flash demos are all very flash :-) , although I don’t really see the life-changing-ness of being able to calculate anywhere (maybe I just wasn’t cut out to be an accountant). The “learn as” feature seems nifty at first glance (although if it’s just files or URLs, you could simply just bookmark them in Nautilus or Epiphany and pick them up in the Deskbar).

Update (2007-01-29): Terry didn’t win, by the way, but he still made the news. Apparently he “is a true-blue Australian with a fondness for meat pies, football, cricket, and our easygoing, honest, and relaxed culture”, despite me being unable to remember the last time he ate a meat pie, watched the footy, or the cricket. He is, however, easygoing, honest and relaxed.

CAPS LOCK, HOW I LOVE THEE

It’s nowhere near “release early, release often”, but superswitcher 0.4 is finally out. The project is now hosted on Google Code, which means a subversion repository, an issue (bug) tracker, an one-stop download shop and probably more to come.

You can now also download a i386.deb binary package directly, rather than just the source tarball. This is the first time that I’ve rolled a .deb, so feedback is most welcome.

One new feature I’d like to highlight is the ability to use the Caps Lock key to switch windows (WITHOUT HAVING TO TYPE LIKE THIS) instead of the Super key, which is most useful if, for example, your Thinkpad has no Super key, or something like compiz wants the Super key. This promotes the larger-than-average Caps Lock key from my most hated wart on the keyboard to one of the most cherished keys. Hooray for the poor neglected Caps Lock.

Changes since 0.3:

  • Can now drag-and-drop workspaces.
  • New -c, -v and -? command line options.
    -c or –trigger-on-caps-lock makes Caps Lock also switch windows.
    -v or –version shows the version number and exits.
    -? or –help shows a brief instruction guide.
  • Super-Shift-Control-Insert now moves *all* windows from this workspace to a new workspace, so as to be consistent with Shift = Move, Control = Move-All-Windows-in-this-Workspace and Insert = New-Workspace.
  • Now does window-frame geometry calculations “the right way”, via a window’s _NET_FRAME_EXTENTS X property, rather than presuming that its frame is the same as its parent X window.
  • Now warps the pointer to the activated window’s center, under focus-follows-mouse in metacity. This fixes the behavior where window activation would be ’stolen’ by whatever window was under where the pointer was at the time.
  • Now works when NumLock is on. Fixes bug #1.

Get it fresh from the superswitcher project page. Its gnomefiles.org page is still updated but is no longer definitive.

Thanks to Drew Kerr for his help.

OK, back to Kerry O’Keeffe calling the cricket…

Supersubsomething

It’s been a quite a few months where nothing happened with superswitcher (or actually anything at all from me on the OSS front), but my eleventy-half loyal users will be happy to know that it now has a subversion repository and issue/bug tracker, thanks to code.google.com. Already, a bug (Doesn’t work when Num-Lock is on) has been filed and the one-liner fix has been committed.

Ah baby steps, back on the path to world domination. Now to contemplate my massive deskbar to-do (or at least, to-look-at) backlog…

On Crack, Fantastic!!

Davyd calls a spade a spade in the latest Gnome Journal: “A Bar For Your Desk!”

Mad Penguin is only four months into 2006 and is already calling Deskbar “Tool of the Year”. They also gave Deskbar “most useful applet award”, but I presume that there’s less competition in that league.

The digg community, in between debating the definition of “screencast”, said “they took the spotlight idea and put it on crack, fantastic!!”

But my favorite call is still by Luis Villa from before the Deskbar was cool: “the magic applet”.

In comparison, what are people saying about superswitcher:
cool,
cool and
cooooooooool. Roooooooock on. :-)

Drag Till You Drop

Superswitcher 0.3 is out. The quickie screencast (220KB animated GIF) below isn’t great, but hopefully you get the idea.