How I learned to let go and love Gnome 3 (sorta)

When Gnome 3 first came out, I had some problems with it. I think everyone did. It was a radical departure, to be sure.

My biggest problems, as I recall, were:

  1. Someone made the laughable decision to consider multiple monitors as one workspace accompanied by a fixed screen (or multiple fixed screens with 3+ monitors). Meaning, if I switched to a different workspace, only the view on one monitor changed. For someone who likes to maximize real estate during development, this was utterly unworkable. There was some hue and cry about this, and eventually (in the last few months) this seems to have become a proper configuration option – it still defaults to this behavior but you can change workspaces to include all monitors with the gnome-tweak-tool. At the time, the only workaround was an unsupported option, which probably contributed to 2.
  2. On the particular machine where I was trying Gnome 3 on Fedora 16, it was completely unstable. The desktop would randomly freeze every day or so without any pattern to the problem that I could discern.

I tried Fedora 17 when it came out. Some things had settled down, but there were still some stumbling blocks. I actually switched to XFCE for a while as that seem to fit my habits better. But I missed some of the razzle-dazzle, particularly the gnome-shell overlay way of finding and starting apps – old-school menus seemed so clunky after Gnome 3.

Two hurdles kept me from returning to Gnome 3 for a while.

One, believe it or not, was sound. I could not get analog sound to work properly with my headset and mic and dock under Gnome 3. It simply lacks a way to express which of the sources to use, and no matter what I did, I ended up unable to have a decent VoIP conversation due to missing input or output. Under XFCE, there are settings for controlling whether input came from the internal mic, a side jack, or the dock, and similar for output, and I could actually make successful VoIP calls.

I eventually solved that by getting a USB mic/headset. There are settings in Gnome for choosing audio devices, they just don’t work reliably for analog devices on my laptop.

A similar problem was that Gnome can not recognize or configure my two USB mouses separately. One mouse really needs a lot less acceleration than the other, plus Gnome is always spuriously warning me about the battery being low on one. I can let that slide, though.

The second hurdle was the dynamic nature of workspaces. Under Gnome 3, workspaces don’t appear until you put something on them, and as soon as you close all windows on a workspace, it goes away and the others shift up. I was used to setting up several standing workspaces, one for email, one for chat, one for virtual machines, etc., and switching between them by number. Gnome 3 did not make this pattern easy to work with; XFCE did.

Eventually I realized I didn’t really need multiple monitors. I’ve been using them since 2004, when I was a bit of a pioneer of this method at Red Hat. Fast forward to 2012 and I realize… three monitors is definitely too much for my ADD, and probably even two. I don’t really want to turn my head between two monitors, I just want one with a good resolution for fitting several windows.

But what I finally realized, and it was a bit of a revelation, is that I tended to load up a lot of work on one or two workspaces and leave the others alone most of the time. I realized that my standing workspaces were like parking lots for unfinished tasks. The Gnome 3 way actually started to make sense when I started to designate one workspace per task. That is, as soon as I start work on a new task, go to the empty workspace at the end, fire up a browser/terminal/VM/etc and start working on that task. If I need to start on another task, start it on another desktop. When I finish a task, close everything on that desktop and it goes away.

The problem with this approach is that apparently I context switch a lot. Or my tasks are too big. Because what ends up happening is that I have a dozen desktops full of tasks and I can’t remember which one is where. I searched for a way to label workspaces, and all I could come up with is the Labeled Spaces extension. Unfortunately this has a number of shortcomings, mostly detailed on that page. The biggest shortcoming, for me, is that (at least with this extension enabled) gnome-shell seems to crash fairly often and restart, resulting in all workspaces being forgotten and all of my windows being dumped onto a single workspace, and having to sort them out by task again.

The good news, though, is that the author has put the source up on GitHub for our hacking pleasure. I don’t have a lot of spare time, but maybe I’ll take a swing at improving it. Aside from just labeling workspaces, I would like to figure out some easy way to record the state of the space before context switching to another task, so I can jog my memory when I return. I could just put a note on the page, but that seems clunky – I want something more meta.

Maybe what this is telling me is that I keep too many tasks in flight. I should probably “hibernate” some periodically by making notes in my task list, bookmarks in my browser, etc.

Advertisements

3 Responses

  1. Nice post! Have you tried KDE 4 Activities?

    • I had a look at KDE but it just didn’t really appeal to me. I suppose I should give it a real try before discounting it.

      • I switched to KDE4 several days ago. Before I used crazy setup with Awesome WM and Gnome Session Fallback. I had some issues with dual head setup but now everything is great. Everything is customizable. Actually I switched a distro to KDE-centric openSuSE.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: