[ubuntu-studio-devel] Nearly done with fine detail port of modded US circa 2008 theme to Gtk 3.14 w matching Gtk2 version

lukefromdc at hushmail.com lukefromdc at hushmail.com
Tue Feb 3 05:32:26 UTC 2015

Since October I have been playing again with my longstanding "UbuntuStudio-Legacy" Gtk theme, driven originally by the need to make it work right in a hybrid cairo-dock/MATE desttop, then by the usual round of Gtk 3 breakage when Gtk3.14 came into Vivid. In the process I've ported a lot of fine detail from the Gtk2 varient to Gtk3, and a few Gtk3 items back to Gtk2. The latter items are radio buttons and sliders looking like engine turned aluminum on hardware stereos, and the toolbar gradient.  My personal blue-green modification is in both, reverting this is possible but now requires remaking about a dozen small SVG images as well as setting a couple variables.  This started as a rough port, the fine detail port has been an entirely different beast.

In the process I have found an ugly reality: if you want to do an exact or nearly exact match (for any theme) between Gtk3 and Gtk2, you will end up using a lot of images. If writing for Gtk3.12 or earlier many will need to be svg images to avoid nasty rendering artifacts like lines under checkboxes.  Example: The exact way the murrine engine rendered the selected menuitem borders was impossible to directly duplicate in Gtk3 until I took a screenshot of a Gtk2 selected menuitem, cut away everything but the 2px wide border, saved it as a png, and used Inkscape to convert it to svg for better final rendering. The gradient inside was reproducable without using an image. The Gtk3 checkboxes are images of the Gtk2 checkboxes, all radio checks and sliders are images but that's because they have to be. I liked a slightly increased menubar gradient, when Murrine didn't want to do that I screenshooted the Gtk3 version with everything taken out but the background for Gtk2. Both pixmap 
 and murrine engines are now used in the Gtk2 theme, no engines at all in the Gtk3 version as GNOME says they will be deprecated(along with so many other things...).

At this point I can fire up Gedit and Pluma side by side and they are difficult to tell apart. Both look almost exactly like Gedit did on my machines back in 2008. Filechoosers are a hell of a lot different due to a recent rearrangement, but the theme is the same on both except that the newer version seems not to support "striping" the right side view.   Looks like someone found a way to run the Murrine engine in Gtk3, but it's done with css and some svg images.

I've tested this with good results on MATE, Cinnamon, and GNOME with good results on the first two and reasonable results on GNOME. Their headerbars took an additional evening to get right, and for the same theme to work right in both GNOME and in cairo-dock requires setting window shadows in the theme (for client side windows), then overriding this with a menu.css file in cairo-dock's own config directory.

Anyway, after three months of work I've got a desktop that looks like Cinnamon but runs like Compiz-Mate, with Gtk3 and Gtk2 looking alike and even QT apps looking close thanks to a line in Trolltech.conf telling Kde to use the GTK style.  Theme version as i write this stands at gtk-theme-ubuntustudio-legacy_0.6.10 , having started at gtk-theme-ubuntustudio-legacy_0.3.0 as an increment over the number of the last US theme it was based on.   Might have to rename it before publication due to the switch from blue to blue-green, could offer a fatter tarball with both color options if folks here want it though.

At some point I will probably look into creating an account on DeviantArt or some such place to host the theme and the icons. Creating a PPA was too complex, they don't take finished debs but rather use a lot of procedures totally unfamiliar to me. DeviantArt themes are generally hosted as tarballs, which would allow me to also include a backport to Gtk3.12. That requires only replacing a single new specification (GtkIconSource) with the one it replaced. Will have to be hosted somewhere that does not counterblock adblocking browsers as always for me, and not associated with Google or Facebook who I do not trust.  I will find out soon enough if DeviantArt will make an account when everyone's  trackers and ads are blocked. Many websites do not.

More information about the ubuntu-studio-devel mailing list