Saturday, January 11, 2014

Workaround for Highlighted Text Problems in GNOME Apps when Using Custom GTK Theme

A zonColor theme user reported: 'When i select any zoncolor theme i can't read text when i selected it in evince pdf reader'.

After some investigations, I found that this is a known bug of some GNOME apps like Evince, Evolution, and maybe other too (see, so it will affects other GTK themes that do not include "new standard" in GTK theme color definition.

Those apps look for "the new standard" theme_selected_bg_color, theme_selected_fg_color, etc., instead of the standard, long time used "selected_bg_color", "selected_fg_color", etc (notice the difference, later ones are without "theme_"). This causing any theme that does not use "theme_*" color definitions in its css files will have problems with those apps.

For example, enable the Ambiance GTK theme (the default theme in Ubuntu) that does not using "theme_*" color definitions, and you will see the same problem in Evince.



Put the following codes into /home/$USER/.config/gtk-3.0/gtk.css file (create one if it does not exist), or into the gtk.css file of the GTK theme you are using (for example into /home/$USER/.themes/zoncolor/gtk-3.0/gtk.css).

Put at the very end line of the file:

/*** CODES BEGIN ***/

@define-color theme_bg_color             @bg_color;
@define-color theme_fg_color             @fg_color;
@define-color theme_base_color           @base_color;
@define-color theme_text_color           @text_color;
@define-color theme_selected_bg_color    @selected_bg_color;
@define-color theme_selected_fg_color    @selected_fg_color;

.view.selected:focused  {
color: @theme_selected_fg_color;
background-color: @theme_selected_bg_color;

/*** CODES END ***/

If you want, you can replace @selected_bg_color (for example) with fixed color code (like with #0088ff for example).

I'm not using those "theme_*" color definitions because it's simpler to use the standard one (without "theme_*") in zonColor GTK themes. But apparently, I have to use it in the next version. Oh well... :)


PS: Still, sorry for my English :)
Google+ Comments Disqus Comments
Disqus Comments Google+ Comments
comments powered by Disqus