Very large tabs in Eclipse panes on Ubuntu

EclipseUbuntuUser InterfaceGtk

Eclipse Problem Overview


My question is very similar to Stack Overflow question https://stackoverflow.com/questions/2743647.

I have tried the solutions presented, but they appear to be old. I have found a solution that nicely handles the toolbar and menus, but not a solution that reduces the size and padding of the disproportionately large tabs (and label) within the panes (see the tab "Package Explorer" in the screen below).

I am happy with the way my OS-wide GTK theme is customized and don't want to change that. Is there a quick fix to reduce the tab sizes of the panes in Eclipse?

I'm using Eclipse for Mobile Developers (Juno) on Ubuntu 12.04. I'll also mention that I really like the way Eclipse appears out of the box in Windows 7, so something similar to that would be ideal.

Here are the eclipse specific GTK styles I'm using:

style "eclin" {
    GtkButton::default_border={1,1,1,1}
    GtkButton::default_outside_border={1,1,1,1}
    GtkButtonBox::child_min_width=0
    GtkButtonBox::child_min_heigth=0
    GtkButtonBox::child_internal_pad_x=0
    GtkButtonBox::child_internal_pad_y=0
    GtkMenu::vertical-padding=1
    GtkMenuBar::internal_padding=1
    GtkMenuItem::horizontal_padding=4
    GtkToolbar::internal-padding=1
    GtkToolbar::space-size=1
    GtkOptionMenu::indicator_size=0
    GtkOptionMenu::indicator_spacing=0
    GtkPaned::handle_size=4
    GtkRange::trough_border=0
    GtkRange::stepper_spacing=0
    GtkScale::value_spacing=0
    GtkScrolledWindow::scrollbar_spacing=0
    GtkExpander::expander_size=10
    GtkExpander::expander_spacing=0
    GtkTreeView::vertical-separator=0
    GtkTreeView::horizontal-separator=0
    GtkTreeView::expander-size=12
    GtkTreeView::fixed-height-mode=TRUE
    GtkWidget::focus_padding=0
    font_name="Liberation Sans,Sans Regular 8"
}

class "GtkWidget" style "eclin"
    style "eclin2" {
    xthickness=1
    ythickness=1
}

class "GtkButton" style "eclin2"
class "GtkToolbar" style "eclin2"
class "GtkPaned" style "eclin2"

Here is a screenshot of what my IDE looks like with the huge tabs:

Eclipse Juno IDE with tabs too big

Eclipse Solutions


Solution 1 - Eclipse

You can edit Eclipse's CSS instead of messing with the GTK theme.

In your Eclipse directory find the file plugins/org.eclipse.platform_4.2.*/css/e4_default_gtk.css (there's an * in there, because I guess that the version may change in the future or may be different already). In this file there's a CSS class:

.MPartStack {
    font-size: 11;
    swt-simple: false;
    swt-mru-visible: false;
}

And you have two possible solutions:

  1. change font-size to something smaller
  2. just comment out or remove font-size from this class (works well for me)

And that should do the trick.

Solution 2 - Eclipse

Style of tabs can be changed in Eclipse 4.2 by editing CSS. You can change styles directly in Eclipse Preferences window after installing the E4 CSS editor plug-in.

Go to menu Help > Install new software, then install E4 CSS editor (Incubation) plug-in using Eclipse 4 update site (add this link: http://download.eclipse.org/e4/updates/0.12).

After restart, go to Window > Preferences, General > Appearance and now you can edit styles here for any selected theme.

I am using this style for tabs:

.MPartStack {
  font-size: 9;
  font-family: Liberation Sans;
  swt-tab-renderer: null;
  swt-tab-height: 22px;
  swt-selected-tabs-background: #FFFFFF #ECE9D8 100%;
  swt-simple: false;
  swt-mru-visible: false;
}

You can specify tabs height using the swt-tab-height option. It's value sets tab height ignoring the font size.

Solution 3 - Eclipse

I also wanted to reduce especially the horizontal space in order to fit more tabs, as Eclipse lacks multi-row tabs.

These instructions will go for any platform (not limited to e.g. Ubuntu/GTK).

What I did was:

  • Reduced the font size
  • Changed font to something horizontal-compact
  • Removed the X (close tab) button

...yielding the following result on my system (Win 7):

Screenshot with modified tabs

...and this is how it's done:

  1. Check what CSS layout you're using: Preferences->General->Appearance-> check value of 'Theme:' listbox

  2. Open the corresponding file in <eclipse folder>\plugins\org.eclipse.platform_<your version>\css, e.g. e4_default_win7.css

  3. Modify .MPartStack entries to set font size and font, e.g.:

    .MPartStack {
        font-size: 8;
        font-family: 'Arial Narrow';
        swt-simple: true;
        swt-mru-visible: false;
    }
    
  4. Add the following entry to remove the X (close icon):

    CTabItem {
        swt-show-close: false !important;   
    }
    

That's it!

Solution 4 - Eclipse

Eclipse is now (4.5 Mars) defaulting to GTK3 on Linux. For 4.6 a fix seems to be alredy merged.

Changing SWT_GTK3 environment variable works for Eclipse Mars:

$ export SWT_GTK3=0

or set that variable inline with running eclipse

$ SWT_GTK3=0 /path/to/eclipse/eclipse

To kill it dead just drop this in the root as eclipse.sh:

#!/bin/bash
SWT_GTK3=0 exec env "${0%.sh}"

Solution 5 - Eclipse

You may try the theme from https://github.com/jeeeyul/eclipse-themes.

After install this theme, apply it by choosing the theme in Window > Preferences > General > Appearence > Jeeeyul's themes.

And to solve the large tab problem, please refer to https://github.com/jeeeyul/eclipse-themes/wiki/Linux-Huge-Toolbar-Problem.

It's easy and beatiful. Enjoy it!

Solution 6 - Eclipse

An alternative way is to select:

System settings > Universal access > Text size as small.

Solution 7 - Eclipse

You can edit all small details about tab size here:

image

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAndyView Question on Stackoverflow
Solution 1 - EclipsekonradstrackView Answer on Stackoverflow
Solution 2 - EclipseStanislav MamontovView Answer on Stackoverflow
Solution 3 - EclipseCarlView Answer on Stackoverflow
Solution 4 - EclipsemariooshView Answer on Stackoverflow
Solution 5 - EclipsephilView Answer on Stackoverflow
Solution 6 - EclipseayhanakbulutView Answer on Stackoverflow
Solution 7 - Eclipseuser2493028View Answer on Stackoverflow