Playing with themes

SmartGit 17 allows to use theme files that can define alternative colors for foreground or background of certain controls.

To start, the easiest way to start is to invoke SmartGit 17.1 preview 2 (or newer) with the command line parameter


This way a file own.theme is created in the SmartGit settings directory (the exact path of the file is printed; you can rename or move it). You now can start tweaking this file. It contains of key=value lines. The most keys should be self-explaining. The value usually is a color defined as #rrggbb using hexadecimal values, but it also can be name of another key which makes it easier to create a couple of named colors instead of having to write the same #rrggbb value for different controls. inherit means to inherit the color from the parent control, default forces to use the control uses its default color from the operating system.

Now you only need to tell SmartGit about the own.theme file in the SmartGit preferences:


To create a theme that uses a dark background color for the main toolbar, uncomment the line


and change the value to inherit (to inherit the background from the parent shell control):


Similarly change the line




though the last change won’t have any effect on all platforms because of a limitation of SWT.

Buttons without selected state with Breeze-theme on KDE

If you are using a recent KDE version, e.g. with openSuSE Leap 42.2, you will notice that some toolbar buttons don’t show a selected (or toggled) state.

You can fix (or work-around) it, by opening the System Settings and selecting “Application Style” in the “Appearance” section. On the tab “GNOME Application Style (GTK)” you can find the options for selecting GTK themes:

If you select, e.g. “Adwaita”, and click “Apply”, SmartGit’s toolbar buttons will show their selected (or toggled) state: