I Hate GTK Tabs

Posted September 15, 2007

I’m a big fan of GTK. It’s generally a very nice-looking GUI toolkit, with good, consistent UI. It’s a total blast to program in, especially after doing Windows GUI programming at Microsoft (shudder). I’m in awe that it’s managed to create a full-fledged object system in C of all languages.

That said, there are some things that bother my about GTK, as there are about everything I use. Everyone knows about the annoying default size of the file-opening dialog, and everyone wishes it were compositor-aware. I’m pretty sure the powers that hack are working on these at the moment anyway.

The one thing that bugs me more than either of these, though, seems to have gone mostly unnoticed by everyone else. I hate GTK tabs. They are gargantuan, hideous, unusable monstrosities.

GTK Tabs

Let me explain where I’m coming from. I consider Firefox’s tabs essentially the gold standard. They’re nice-looking and have good UI. If GTK just mimicked FF’s tabs, I would be happy.

Firefox Tabs

Aesthetics

To begin with, GTK’s tabs are just ugly. Granted, a lot of this has to do with my themes, so this rant is partially directed against them, too.

It’s disappointing, really. Tango and Clearlooks are both usually excellent. It seems like they kind of dropped the ball here.

For example, look at the selected tab above. Sure, it’s adequately marked, but it’s ugly. It’s even bigger than the other, already huge tabs. The blue gradient just looks gaudy. It feels like the Clearlooks folks just arbitrarily picked a few attributes and said, “these define a selected tab!”

Compare that the the Firefox selected tab. Like GTK/Clearlooks, it just changes a few attributes to specify that it’s selected. But they all work towards a single, clear feeling: that the tab is brighter.

The background gradient is replaced by pure white. The text is bold. The thing practically gleams.

And the close button! Normally all of Tango’s icons are vibrant and clear. But this X is office-building-hallway gray1, and looks like it belongs in one of those “hand-drawn” themes.

Again, compare that to the Firefox icon: Firefox close icon. It’s shiny, it’s bright red. It looks like an actual button.

Finally, the GTK tabs are just big. The tab bar itself is only a few pixels taller than Firefox’s, but GTK’s tabs themselves take up more of that space than Firefox’s. And they get bigger when they’re selected.

Why is it bad to be big? Mostly personal preference, I guess. I prefer things to be as small as they can be while remaining readable. Of course it provides more screen real estate, but really I just think smaller widgets look better. Cleaner. More sleek.

User Interface

If I were just bothered by aesthetic issues with GTK tabs, though, it would hardly be worth making a blog post about. What really gets me about is, I think, more universal. The UI is completely counterintuitive and aggravating.

One of the most important aspects of a tab control’s UI is how it handles overflow. When there are tons of tabs, it becomes impossible to display them all at the same time.

There are a few standard strategies for dealing with this. You could only display the most recently accessed tabs, and have a dropdown list to access the rest. Visual Studio does that, and it works well, especially with the added benefit of Ctrl+Tab, which works like Alt+Tab but with documents instead of windows.

You could also just move the extra tabs out of view of the user, and give a way of scrolling the tab bar to see them. This is what Firefox does (in addition to a version of the dropdown list).

Looking at the screenshot above, you might guess that GTK takes the same approach as Firefox. The arrows on either side certainly suggest that. But alas, GTK decided to throw consistency to the wind and use the same visual design to signify something different in tricky ways.

In Firefox, when you click the right arrow, all the tabs scroll to the left. It works just like a scrollbar. In GTK, when you click the right arrow, it selects the tab immediately to the right of the current tab.

This is horrific.

As I’ve already pointed out, this doesn’t conform to any model the user might already have of how that button would work. It doesn’t work like Firefox. It doesn’t work like a scrollbar. It doesn’t work like anything the user’s familiar with.

What’s more, what it does do is almost totally unhelpful. In almost all cases, it could be accomplished by clicking the tab you want. Unless the tab you want is next to your current tab, just clicking it would actually be faster.

There’s only one situation in which the arrow button provides more functionality than just clicking a tab. When the tab you want has overflowed and isn’t visible, you need to use the arrow to navigate to it.

In this case, Firefox’s behavior is clearly better. It allows you to expose more than one tab at a time. You can examine the tabs before you select them. You don’t have to select the last visible tab before seeing the invisible ones.

I’m sure I can’t be the only one who detests these. But I have hope. GTK is being actively developed, and various aesthetic and UI issues are gradually disappearing. With luck this’ll be among those soon.

1 Or green. I dunno, I’m partially colorblind.

Will Farrington said September 15, 2007:

You and me both!

Ethan Osten said September 19, 2007:

I like the default behavior. Different strokes, I guess.

Nathan said September 19, 2007:

I’m curious: what do you like about the GTK behavior? It seems to me almost totally useless.

Ethan Osten said September 26, 2007:

It keeps me within a certain context; on my screen, I can only see about seven tabs in Epiphany at any one time, meaning that I’m not distracted by the other thirty in the window. When I need them, they’re there, and I can get to them easily. And when I don’t, I don’t.

misreckoning said January 25, 2008:

I can’t agree more! Only Glider has some smaller tabs and Big tabs are really annoying in Eclipse for example :(

Tina Russell said October 01, 2008:

I agree with Nathan. The GTK tab behavior is counterintuitive and takes way too many clicks. I’m sick of changing docks in GIMP this way!

I hope the GTK team is listening. I love GTK, but for this one major deficiency.

Johnny said April 04, 2010:

Although 2 years after the fact, I must support your crusade against GTK tabs.

My biggest visual qualm? Notice how the firefox tabs have a nice arrow button on the left side? It’s visually distinct, and has a clean crisp border…. and then when GTK tabs overflow the tab bar the left arrow doesn’t have that nice distinction? It just kind of butts up against the half displayed tab on the far left without any kind of separation? The feeling inside my being is so close to murderous at this present moment in time. Seriously, the fix is as easy as specifying some overflow rules for tab bars, and making sure they look good.

That they work in their current state is true, that they work in a visually ergonomic sense is a complete wad of crap.

Serrano Pereira said October 28, 2010:

I totally agree with this post. I do like GTK a lot, but it needs improvements on some points (tabs’ on of them). Someone should make a feature request out of this.

Anonymous said June 21, 2011:

just change the theme and GTK tabs are sexy

Make your comments snazzy with Textile!