69
votes

My question is very similar to Stack Overflow question Gigantic Tabs in Eclipse on Ubuntu.

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

7
@eicto, you should make this a full answer, and mention that you have to select GTK as the window manager.Ajax
At least since eclipse Mars there is a dedicated font setting for this: Go to Preferences -> General -> Appearance -> Colors and Fonts -> View and Editor Folders -> Part title fontStefanQ

7 Answers

96
votes

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.

61
votes

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.

13
votes

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!

8
votes

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}"
1
votes

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!

0
votes

An alternative way is to select:

System settings > Universal access > Text size as small.
0
votes

You can edit all small details about tab size here:

image