Superswitch Me

Announcing a wee program that some might find useful.

SuperSwitcher is a (more feature-ful) replacement for the Alt-Tab window
switching behavior and Ctrl-Alt-Left/Right/Up/Down workspace switching behavior
that is currently provided by Metacity.

When running, use the “Super” key (also known as the “Windows” key) to switch
between windows and workspaces. This key is usually found between the Ctrl and
Alt keys on the keyboard.

Super-Tab works just like Alt-Tab does (with and without Shift), but also:

  • Super-Up and Super-Down cycles through all windows in the current workspace in
    a fixed order (as opposed to Alt-Tab or Super-Tab, whose list of windows is
    ordered by most-recently-used first – which is good if you want recently used
    windows, but it’s clumsy to cycle through, for example, all three or four
    windows in the one workspace). Hold down Shift to re-order the list instead of
    switching between windows.
  • Super-PageUp and Super-PageDown maximize and minimize the active window (or
    restores them if it was already maximized or minimized). Super-Ctrl-PageUp and
    Super-Ctrl-PageDown do this to all windows on the current workspace, not just
    the active one.
  • Super-Left and Super-Right cycles through your workspaces. Hold down Shift
    to also bring across the active window into the new workspace. Hold down Shift
    and Ctrl to bring across all windows from one workspace to the next. Unlike
    Metacity’s Ctrl-Alt-Left and Ctrl-Alt-Right, this “loops” so that, when you get
    to the end of the list, you cycle back to the start.
  • Super-F1 moves to workspace number 1, Super-F2 moves to workspace number 2, and
    so on, up to Super-F12. Again, hold down Shift to bring across the active
    window, and both Shift and Ctrl to bring across a flock of windows, just like as
    described above.
  • Super-Insert creates a new, empty workspace. Again, hold down Shift to also
    bring across the active window (if there is one) into the new workspace.
  • Super-Delete deletes the current workspace, if it is empty. Super-Shift-Delete
    will delete all empty workspaces, down to a minimum of one.
  • Super-Escape closes the active window. Super-Ctrl-Escape will close all windows
    on this workspace.
  • Whilst holding down Super, typing regular letters or numbers will show you only
    those windows whose titles match that pattern. Pressing Enter (whilst still
    holding down Super) will then cycle through the matches, regardless of which
    workspace you are on. For example, if you have a lot of windows open, and you
    want to get to your web browser window that is showing planet.gnome.org, then
    hold down Super, then type “p” “l” “a” “Enter” and then release the Super key.
    Shift-Enter goes in the other direction than Enter (i.e., up and left with
    Shift, versus down and right without Shift). Use the Space key to enter
    multiple word fragments, such as “pla gn”, to further refine your search.
  • Finally, when holding down Super, click on image or text representing a window
    or a workspace to activate it.

Download it from SourceForge.

Ha Ha Funny or Weird Funny

My uni friends are slowly migrating to the inevitability that is The Matrix Internet. I invited my mate to a New Year’s Eve party, and he blogged it. He’s a funny guy, that Wes.

When You Can’t Sleep, Blog

I’ve been playing recently with Corel Painter, which lets you fake the look of natural media (like paintbrushes, watercolors) on a computer. It’s a lot of fun, and whilst it’s clearly fake, it sure impresses those who haven’t seen it before.

I’ve also been wasting my youth enjoying my holidays with the latest incarnation of the game Civilization. Gameplay and balance works quite well in Civ 4, although I’m still not convinced on the change from 2D to 3D graphics. I think that Civ 1 had the most usable graphics – even if they weren’t pretty, you could easily tell different units and different terrain apart. Civ 4 looks more subtly blended/integrated and “realistic” (although either I have very tall people or very small buildings), but it’s harder to distinguish between a temple and a cathedral, for example. Wesnoth is 2D, and I quite like it’s distinctive visual style (is the 1990s sufficiently old to be “retro”?) in the current climate of games-must-be-3D think. As a bonus, some guy made “ye olde mappe” style Wesnoth maps.

And, with 3D, you sometimes get images like these, as spotted on the Civ forums.

Have Your Extension and Eat It Too

When showing file names, one theory is that you show the “.txt” and “.png” extensions, since they are the true file name, and another theory says that you should hide them, since they are ‘scary technical details’ that Joe User shouldn’t have to deal with.

What if we combined both ideas rather than either one or the other? Nautilus already makes the distinction when renaming a file (it selects only the “foo” of “foo.txt”), so should we also make the same distinction when showing a file’s name?

Demotivation

I recently came across this set of satirical demotivation posters, and rigged my computer to set a random one as my desktop background every time that I log in (yeah, the novelty will surely fade with time). Here’s how.

Just save all the JPEGs (manually or with wget) into one folder, strip the captions if you want (with ImageMagick or PIL – crop the bottom 14 pixels off), save the script below as random_background.py and from System → Preferences → Sessions, go to the Startup Programs tab and add your script.

#!/usr/bin/env python

import gconf, glob, random

all_pics = glob.glob ('/home/yourname/pics/wallpapers/despair/*.jpeg')
pic = random.choice (all_pics)
gconf.client_get_default ().set_string ("/desktop/gnome/background/picture_filename", pic)

Update (2006-02-06): Yeah, the novelty wore off, after a little over a month.

We Put the .6 in 0.8.6

Version 0.8.6 is out. My favorite bit is Raphael’s new Tango-ized, shiny SVG icons.

Standing on the Shoulders of Open Formats

I’ve been doing a bit of work for economist Andrew Leigh, who’s looking at geographical features (in particular, distance from the city, and distance from the coast). I got hold of map data from the Australian Bureau of Statistics (whose website usability could be the subject of a whole separate rant).

The program that comes with the dataset lets you do things like calculate average income per region (where regions come in such acronymic flavors as SD, SSD, SLA and CD), or even average income for those regions within 10km of the city, but it wouldn’t give me just the distance to the city or beach. Luckily, the data is in text format, and so having recently read about using the cairo graphics library in python, I got to work. First, a check that I can read the data properly – here is Canberra, and the highlighted region contains Parliament House.

Next, coastline data comes from the state boundaries, but it’s far too detailed for nearest-point calculations. Since the co-ordinates were in plain text files, I could re-interpret them as standard SVG (Scalable Vector Graphics) files – hooray for open formats! Inkscape‘s mighty Simplify command whittled the boundaries from 220,000 nodes to a more managable 1000, whilst preserving the general shape.

Overlay the calculated distances onto the image for a quick visual error-check, and I think I’m all done. Adelaide: distance to the coast on the left, and distance to the city on the right (zoomed out 2x relative to the left).

World Domination, One Day at a Time (Again)

I’m just bragging, but the deskbar applet is well inside GnomeFiles‘ top ten best rated apps, at least for today. Ah, warm fuzzies.

Update (2005-12-10): make that “well inside the top one”. No, I didn’t vote for myself. Yes, it’s pure vanity. 🙂

I Have a Cunning Plan, M’lord

What do you do when your e-mail is taken away from you, but you still want to send a message to fellow developers? File a bugzilla comment. Mikkel has had some pretty heavy experiences lately. I hope that it all ends well for him.

Don’t Knock My Smock

The deskbar applet is rounding out nicely – and now supports keywords, just like it did in version 0.4, before we took it out for undoubtedly good reasons :-). I can type “wp stuff” to go directly to the Wikipedia’s entry for “stuff”. Also, if the keyword is a single letter, like “w”, I can type “stuff” and then hit Control-W. It is once again a YubNub bar. As my mate Jonathan said, “I just like to say YubNub. YubNub YubNub YubNub…”. Reminds me of one of my favorite Calvin and Hobbes moments.

I was hoping that keywords would be integrated into the Epiphany web browser itself, since we now pick up search bookmarks out of Epiphany’s bookmarks, rather than (as in version 0.4) duplicating this by maintaining our own list. However, the epiphany developers sounded less than enthusiastic, so the deskbar is going to store it separately.

On a similar topic, a week or so ago, Peter Harvey posted to epiphany-list about renovating Epiphany’s bookmark/history storage system to be database backed (and SQLite in particular, IIRC), rather than XML-file backed. This would provide an epiphany-data-server, similar to the current evolution-data-server, and allow us to not have to parse and index the bookmarks and history ourselves. Currently, we have to re-load, re-parse and re-index the XML files everytime the history changes. Which is every time a browser window is opened. This is clearly less than ideal. Here’s hoping that Peter’s work gets off the ground.

An epiphany-data-server would also help the Browser Bookmarks Menu applet, which just got its first release in six months. Many thanks go to Ed Catmur for supplying patches. Epiphany itself supplies a “Bookmarks Tray” extension which is very similar to the Browser Bookmarks Menu, but that is (IMHO) useless because it disappears when you close your last browser window. The whole point of something like that in your panel is that you don’t have to open your browser to open your bookmarks, you can just open your bookmark in one step. As for the Browser Bookmark Menu itself, I don’t use it anymore, since it’s quicker to type (part of) a bookmark’s name into the deskbar than it is to find and click on a bookmark in a crowded menu.

Finally, for some GNOME panel/theme idea mockups on gnome-look.org, follow the links from a comment about foopanel. And while I remember, here’s the Minnamurra theme that I made a few months ago, named after an Australian rainforest that a girl once took me through. The idea was to have the minimize / maximize / close buttons (highlighted in the image below) look etched, and subtle, rather than have big, red X buttons that scream for your attention. And I like green.