Taskbars

Warning: rant dead ahead.

Why do the neither of the taskbars in the two main free software desktop systems behave in a sane fashion?

What I want is basically what Windows can do – a double-height taskbar so I can have several apps open and still see the titles on the window buttons, but with space economised to the left and right by using small icons for tray apps, QuickLaunch and so on. And I want it to fill up left to right, then top to bottom, so it’s easy to mentally thread it into one long row. And when I close a window, I want as few buttons to move as possible.

Windows fails to achieve perfection in only a few small respects. When you expand the taskbar to double height, the start button goes to the top left rather than the bottom left. In neither configuration is the Start button or the bottom row of window buttons a mile deep. And it doesn’t allow tray icons to wrap round the clock.

In Mandrake 10.0 KDE, you can get something a bit like this, but for some reason it decides to populate window buttons into the double height taskbar top to bottom before left to right, which means that when you close the first window you ever opened, 100% of your window buttons move vertically, and 50% of them also move horizontally! Nothing is where it was a moment ago! It’s incredibly disorienting, and I never found a way to change it.

In Ubuntu 5.04 GNOME, which I’ve just installed on my laptop, you can have multiple toolbars (the default install has two). However, the widget which displays the current window list can only appear on a single bar. So, to get two rows of buttons, I have to double the height of the bar. However, it now “helpfully” expands all the other widgets (like the “Show Desktop” button) from 24×24 to 48×48, thereby squeezing the available horizontal space. Doh! By the time I have all the other widgets on the bar at that size, there’s barely any room for window buttons at all.

It’s not as if my requirements are odd. “UI stability” is a reasonably well known UI maxim – so what’s going on with KDE? “Maximal space for window buttons” doesn’t seem like an uncommon use case – so what’s going on with GNOME? Or have I missed something?

16 thoughts on “Taskbars

  1. I don’t understand your request for UI stability. Is your desired behavior that when you close a window, the button disappears and leaves a “hole” with nothing shifting in? That seems like a real nightmare when you repeatedly open and close various different windows, since you’ll presumably have a random mix of windows populating the spaces, bearing no resemblance to the order in which you opened them.

    On the other hand, if you want things to shift, then whether buttons are opened left to right or top to bottom first, you’re still going to get “100% of the buttons shifting” if you remove the first one. In the left to right case, you’ll get the whole top row sliding left, the leftmost bottom item becoming the rightmost top item, and the whole bottom row sliding left.

    What obvious part of your wishes am I missing, since I know you should be making more sense than I’m grasping here?

  2. I totally understand what you are saying, and think your wants for a taskbar are justified.

    We should start a “Spread Taskbars” website or something

    *hugs*

  3. I know this layout, and indeed windows would top the roost if the start button was moved to the bottom, or at least the space under it could be occupied (by the Quick Launch for example), and the clock too is a trouble spot.

  4. Peter: I admit that stability of the entire UI is hard to do – although I think your “hole-filling” algorithm should certainly be given a try. It has the additional advantage that you can also see that a window you closed is definitely gone.

    The Windows algorithm compromises by having small changes most of the time, and large seismic shift occasionally – when the bottom row is less than half the length, it resizes all of them at once. When you have quite a lot of buttons (say ten in each row) and close one window, each button usually at least overlaps its old position. Animating the button slide would makes it even less jarring; I don’t think Windows does that.

    Also, horizontal movement is mentally easier to cope with than either vertical movement or (worse) both, because your mental model is of one long string of window buttons, which wraps like text onto a new line. All the learned behaviour from editing wrapped text is applied.

  5. After I had read your blog entry I tried to customize the Gnome taskbar (panel) in Ubuntu as you request and I found a way to do it.

    You already mention that Gnome can have multiple panels. This means that you can combine several panels to get the desired effect:

    – Remove all other applets on the panel (You can keep the desktop switcher because it can show desktops in several rows.). Make it double height.
    – Uncheck ‘Expand’ option for the panel.
    – Add new panels; add applets you want; place the panels at the bottom along side your first panel.

    Voila!

    This is obviously a workaround but will give you want you want. If icons should resize when you change the size of the panel is probably debatable. From an accessibility viewpoint this is a good feature for those with bad eye sight. Maybe there should be an option to disable it in the panel preferences.

  6. Gerv, if task switching is the basic problem why don’t you try something different for switching between windows and do away with the taskbar?

    I don’t think it would be too hard to port to KDE/GNOME.

  7. I also find this an annoying feature in KDE. I believe you referred to it, but I also find it annoying that when I do have the taskbar to ‘double height’ then the ‘quicklaunch’ iconsalso increase in size. I can see that some users may desire this behaviour, but I would personally like to have the ‘quicklaunch’ icons remain the same size and have 2 rows of them, thus fitting more into the same space.

  8. I think you should use desktops more. You can group windows by activities – one desktop for messaging stuff, one for music, one for web browsing, use the pager or the window list (which is on the top right in a gnome setup) to move between desktops. I typically use six desktops, and there is no need for minimizing windows. The taskbar isn’t needed anymore.

  9. I have my windows deskbar to the Left of the screen, set to autohide and width about 120px, it can hold about 25 items before the width of every entry is shrinked to show only the icon, and the start menu is at the extreme top left (easier to hit) and since the menu expands down the items don’t jump around up and down when I have too manu programs.

  10. You might wanna check out plasma, a new initiative of KDE for the desktop and panels. The KDE Panel has undergone massive rewriting since KDE 3.3, and it’s still developing greatly. I’m sure these problems will be solved by KDE 3.5/4.0. (Yes, I know, it’s not now so it’s not perfect. But it’s something to look forward to anyhow).

  11. I’ve pretty much always wondered the same thing, but at least the situation has improved somewhat over the years.

    However, I recently found a setup that pleases me quite a bit. I’ve got a double height panel along the bottom of the screen with the menus, the window list, desktop switcher (I only use two desktops) and a clock. Along the left hand side of the screen is another panel with icons on it for applications I use all the time. I’ve found that using this second panel is much faster than using the menu, and puts the icons in essentially the same arrangement as the menu would.

    In fact, this is a good excuse for a screen shot! :)

    http://db48x.net/desktop.png

  12. Shetil: I tried to follow your instructions, but I don’t really understand them. Could you elaborate? It seems you are saying to put one panel alongside another, but that doesn’t work. And I don’t want the panels to be more than 2 high…

  13. This probably isn’t what you want since it’s a bit unorthodox, but I really like the way that Enlightent (using Engage) does it. Engage is a dock at the bottom, with icons that looks somewhat similar to the OSX dock, except that when I open things they don’t start madly jumping. When I click on something, if it doesn’t exist on the dock by default, then it put itself there. Opposed to OSX, when I close a program, it actually closes. If I want to switch to another program I’ve opened there’s ways to do it. If I want to goto a window I’ve opened, I either middle-click on the desktop (and it gives me a nice menu with icons, and the window titles) or hover over the icon in Engage and it will show me a couple of smaller icons above corresponding to each of the open windows. Clicking on one of them either opens the window in my destop (if it was minimized), or moves me to the desktop the program is on.

    I wouldn’t recommend Enlightement for end-users yet. It is still a bit buggy, though nothing durastic, and more importantly, you have to compile it all from CVS. But it’s still really nice IMHO.

  14. I’ve never understood the use of taskbars in a system with virtual desktops. It makes sense in the Other OS, but I’ve never seen the point in GNOME.

    My browser is always in desktop 3; my terminal is always in #1, my music is always in #4, etc. Having an omnipresent widget just to tell me which apps are open seems like a bad use of screen real estate; I know exactly where my apps are without even thinking about it. Learning to be consistent in which programs you open on which desktops really pays off.

    Then again, maybe it just works well for me since I am a web developer, and I have a predictable set of programs open at all time with little variance.