28

Possible Duplicate:
Gigantic Tabs in Eclipse on Ubuntu

Back when I was using Eclipse on Ubuntu 10.04 LTS, I found that the tabs and bars used a bit too much vertical spacing, which made the interface a bit too spacey for my taste.

However, I didn't find a good way to make this right, and I learned to work with it.

But now, after installing Ubuntu 12.10 (or actually Linux Mint 14 Cinnamon), it has gotten even bigger, the vertical spacing.

If you have three tabbed windows with two toolbars in your normal vertical workspace, this easily hides 6 lines of code with useless UI spacing, which I personally find quite annoying.

Before screenshot (a bit too spacey) | After screenshot (annoyingly spacey):

enter image description here

I personally don't like this and I would prefer to get rid of it. I have tried some GTK3 themes and they left stuff almost equally spacey, adding or removing maybe an extra pixel.

I have traveled deep into the preferences of Eclipse itself and I have seen many things. I am not sure if I was distracted or there is just no way of changing this from within Eclipse itself, but I didn't find any.

How do I turn this oversized touch interface for people with 4K screens back into a compact interface for programmers who want to see lots of code?

or

How do I brutally do this myself in /usr/share/themes/*/gtk-3.0/*css?

Community
  • 1
  • 1
Redsandro
  • 11,060
  • 13
  • 76
  • 106

2 Answers2

69

I have been looking everywhere for a GTK3 solution, because I was sure the switch to a GTK3 system caused this. However, after two hours of wasting my time, I found out that the 'old GTK2 trick' just works.

The original forum post is here: http://ubuntuforums.org/showthread.php?t=1465712

Add a new file called .gtkrc-2.0 to your home directory with the following content:

style "gtkcompact" {
  GtkButton::default_border={0,0,0,0}
  GtkButton::default_outside_border={0,0,0,0}
  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=0
  GtkMenuItem::horizontal_padding=4
  GtkToolbar::internal-padding=0
  GtkToolbar::space-size=0
  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
  GtkTreeView::vertical-separator=0
  GtkTreeView::horizontal-separator=0
  GtkTreeView::fixed-height-mode=TRUE
  GtkWidget::focus_padding=0
}
class "GtkWidget" style "gtkcompact"

Restart Eclipse.

Wasted space back to efficient use!

enter image description here enter image description here

Update 2014-06

Now that I myself have (finally) moved to Kepler, I found that the little minimize-maximize widgets wouldn't go below 28 pixels anymore. These .gtkrc-2.0 seem to have better results for Kepler.

style "gtkcompact" { 
  GtkButton::defaultborder={0,0,0,0} 
  GtkButton::defaultoutsideborder={0,0,0,0} 
  GtkButtonBox::childminwidth=0 
  GtkButtonBox::childminheigth=0 
  GtkButtonBox::childinternalpadx=0 
  GtkButtonBox::childinternalpady=0 
  GtkMenu::vertical-padding=1 
  GtkMenuBar::internalpadding=0 
  GtkMenuItem::horizontalpadding=4
  GtkToolbar::internal-padding=0 
  GtkToolbar::space-size=0 
  GtkOptionMenu::indicatorsize=0 
  GtkOptionMenu::indicatorspacing=2 
  GtkPaned::handlesize=4 
  GtkRange::troughborder=0 
  GtkRange::stepperspacing=0 
  GtkScale::valuespacing=0 
  GtkScrolledWindow::scrollbarspacing=0 
  GtkExpander::expandersize=10 
  GtkExpander::expanderspacing=0 
  GtkTreeView::vertical-separator=0 
  GtkTreeView::horizontal-separator=0 
  GtkTreeView::expander-size=8 
  GtkTreeView::fixed-height-mode=TRUE 
  GtkWidget::focuspadding=1 
} 
class "GtkWidget" style "gtkcompact"

style "gtkcompactextra" { 
  xthickness=2 ythickness=2 
} 
class "GtkButton" style "gtkcompactextra"
class "GtkToolbar" style "gtkcompactextra"
class "GtkPaned" style "gtkcompactextra"

If you add the xthickness and ythickness to the whole GtkWidget class, your menu bar will be all tight and squeezed together. That's too much in my opinion, but just so you know.

You can edit the file and save it, open up something simple like Geany, tweak save, re-open Geany etc. to quickly tweak this. For details you can open Eclipse every time, but it takes longer to load, depending on how much plugins you have to load.

Update 2015-10-02

About Luna and Mars

@eocanha said at jan 15:

If you have Gtk3 installed, Eclipse Luna will use the Gtk3 CSS based styling system and will ignore .gtkrc-2.0. However, you can force Eclipse to use Gtk2 again (if you have it installed) via shell environment variables: "export SWT_GTK3=0" in your .bashrc or in some wrapper script calling Eclipse.

Original source: https://bugs.eclipse.org/bugs/show_bug.cgi?id=420180

zb226
  • 9,586
  • 6
  • 49
  • 79
Redsandro
  • 11,060
  • 13
  • 76
  • 106
  • 1
    it worked for me with Ubuntu Quantal, Cinnamon 2.0 and Eclipse Kepler. thank you. I want compact themes everywhere, but it seems difficult to achieve. – logoff Oct 15 '13 at 08:23
  • This still works with `Kepler`? I thought Kepler css-based and didn't listen to `gtk` options. Oh well, good to know. :) – Redsandro Oct 15 '13 at 13:24
  • 1
    Works for me on Gnome 3.8.4, Eclipse 4.3 (Kepler) – G Mawr Nov 26 '13 at 09:41
  • http://askubuntu.com/questions/220357/how-can-i-improve-eclipses-user-interface-to-get-rid-of-the-excessive-padding-a check here for more minimalistic approach – Augustas Mar 19 '14 at 11:12
  • This does not seem to work with Eclipse Luna. :( – JesperE May 26 '14 at 16:05
  • 8
    If you have Gtk3 installed, Eclipse Luna will use the Gtk3 CSS based styling system and will ignore .gtkrc-2.0. However, you can force Eclipse to use Gtk2 again (if you have it installed) via shell environment variables: "export SWT_GTK3=0" in your .bashrc or in some wrapper script calling Eclipse. Original source: https://bugs.eclipse.org/bugs/show_bug.cgi?id=420180 – eocanha Jan 15 '15 at 09:12
  • @Redsandro, the last comment for Luna (and also Mars) is very useful. Maybe you could add it to the answer? this way it would be easier to locate – Alexey Grigorev Oct 01 '15 at 14:56
  • 1
    To force **Eclipse Mars** to use GTK 2, instead of exporting `SWT_GTK3=0`, you could also start up Eclipse with `{install_path}/eclipse --launcher.GTK_version 2`. To see the version, in Eclipse go to **Help>About Eclipse>Installation Details>Configuration** Tab, and look for `org.eclipse.swt.internal.gtk.version`. – frIT Jan 02 '16 at 14:55
  • 1
    As of at least Eclipse 2019-03 (4.11), unfortunately, it's not possible to use GTK2 anymore :( `The Eclipse Installer executable launcher no longer supports running with GTK + 2.x. Continuing using GTK+ 3.x.`. So that means a new solution is needed for the problem... – zb226 Apr 26 '19 at 15:48
0

If you want to see more code and less clutter, take a look at the eclipse fullscreen plugin . Toggle the fullscreen mode with Ctrl+Alt+z (or define your own binding).

Instead of using menus, the "universal command" shortcut Ctrl+3 can take you to any menu and perform any task faster.

kostja
  • 60,521
  • 48
  • 179
  • 224
  • For most Window Managers there's already a global fullscreen toggle for every application. I believe in Ubuntu/Gnome Shell it is Alt+F11. Otherwise you can set it here: `Keyboard` > `Keyboard Shortcuts` > `Windows` > `Toggle Fullscreen State`. – Redsandro Dec 03 '12 at 14:22
  • @Redsandro - The fullscreen plugin gives you much more real estate than the OS-provided regular fullscreen - it gets rid of the menu bar, symbol bars and the status bar on the bottom. Just try it ;) – kostja Dec 03 '12 at 14:38