The GtkSwitch problem

it’s amazing that people find the on/off switch *that* confusing. I wonder how do they turn on and off the lights in their houses @ebassi

Dear GNOME designers,

When you came up with the original idea of GtkSwitch (or looked at iOS and thought “ooh, shiny”, I don’t blame you), you overlooked the problem of localization. Just as today’s kids have no idea what a floppy is, most of us, Europeans, have no idea what device this widget represents and how it is supposed to work.

What you see:

GtkSwitch widget

What you think:

Light switch in the bathroom
Light switch in the bathroom by anotherpioneer, on Flickr (cc) BY-NC

What you really think: a freakin’ light switch!

For reference, here’s a light switch we use in Europe:

240720081083
240720081083 by jakub.szestowicki, on Flickr (cc) BY-SA

Pressing the top turns the lights on, pressing the bottom turns them off. The ends are unlabelled.

The only device that I could find that matches GNOME’s current behavior for the GtkSwitch is the voltage switch on a PSU. See the red part. You slide it with a flat screwdriver to tell the PSU if the input voltage is 115V or 230V (which, again, is a standard here in Europe):

Power-Supply-noswitch
Power-Supply-noswitch by Kevin Byrom, on Flickr (cc) BY-SA

Update: apparently none of this is true¹ and the widget is perfect. Therefore I stand corrected. Hats off then and bonus points for the humor in the implementation. “How do I turn it OFF?” “It’s easy, just click and drag it all the way to where it says ON.”

¹ As proved by @ebassi: one, two, three.

Procedural wallpapers?

Here’s an idea for GNOME 3.x. Instead of showing a static wallpaper, start treating the wallpaper as an infinite plane. Basically instead of using a JPEG or PNG file as input, build a library that given a rectangle returns the image data (raster or even better vector) corresponding to the surface it covers. As monitors and workspaces come and go, the shell can expand and contract the background, calling the library as needed to build the missing parts.

The possibilities are endless. The easiest implementation is an infinitely tiled texture. Another could be a photo wall with randomly rotated and scaled faux-polaroid versions of your Pictures. Or take pre-defined sets of vector cliparts as input. Whatever is visually pleasant and results in a background unique enough to give subtle hints as to the current position on the plane. By “learning” the wallpaper, the user will subconsciously know where he is and where his windows are.

Add parallax scrolling. When switching to the next workspace, only scroll the wallpaper by a fraction of the size of the workspace. Say 50%. This will add to the perception of depth (wallpaper being non-interactive) while the uniqueness of procedurally generated workspace will give hints about both the current position in the workspace stack and the contents of the adjacent workspaces (as they share parts of the background with the current one).

Profit?