[SPOO - Single Point of Origine]
The Mint-X theme, while beautiful, has always surprised me when
changing to another theme (like Lightning)
Changing to a theme other than Mint-X increases the font-size
so your whole Desktop look 'derailed'.
I tracked it down to /usr/share/themes/Mint-X/gtk-2.0/gtkrc,
around line #53: font_name = "9" and disabling that line makes the
font size appear just like the other themes.
(Not for sub-bars though, you'll have to change more in gtkrc)
I wonder why one would put such font-overrides in a theme that breaks
the "changing themes" experience...
Now, with gtk2,gtk3 and cinnamon themes, it's harder to get a consistent
While there are GTK3 themes that kind-a blend-in with the GTK2 theme you
are using when running MATE, using GTK2 apps under Cinnamon seem not to respond
to GTK2 theming. Fonts appear very small in GTK2 apps under Cinnamon; at least on my LMDE system.
(Try Pluma under Cinnamon)
So, running GTK2 apps under cinnamon (LMDE) again decreases the font, but
this time adjusting gtkrc seems to be no solution.
How could we solve this for the future ?
To the Mint Team:
I propose to have all themes usable with Linux Mint to be abstracted to XML.
XML can be rendered to anything by using XSL, so all theme-properties will
be in *one place* (XML-file) and themes for *multiple* engines/environments can
be generated (XSLT-file). SVG should be the source format for images,
(on-the-fly) converted to PNG if needed.
Lightning.xml hold all the properties defining the "Lightning" theme.
It can even embed all the graphics in [!CDATA] base64 encoding, so it serves as a
kind of 'container'.
(ODF would also be an alternative candidate for holding themes but is possibly be overblown)
"Lightning.xsl" translates those properties to GTK2,GTK3,Cinnamon or any
existing (KDE)/future theming/rendering engine format needed.
At build (developer)/install (user select) or runtime (user dynamic).
The XSL is the 'pivot' that ensures all properties of the theme defined
in the XML are rendered correctly to the target environment.
If the target environment does not support a particular property,
sane defaults are supplied. As sane as Linux Mint is (9-of-10)
This idea is based on the concept of "Single Point of Origin" [SPOO].
- the concept involves a translation which has to be done every time the
- everything is at a single place, having no out-of-sync or mismatched
- multiple targets (gtk2/3/cinnamon) all benefit from the 'SPOO'
- future proof
THEME.XML -> TRANSLATE.XSL ->
If seems like a good idea to you mint-devs, then I'm in to do my part.
You supply the definition of a style, I put it in XML and write the XSL to
generate for what you want.