April 16, 2005 6:11 PM
Gtk themes can usually be selected via gnome-theme-manager though this
is applicable only while your current desktop environment is
Gnome. Here's another way to change your theme so that it's in effect
even while you are on KDE.
First of all, get a GTK2 theme from a site like themes.freshmeat.net
or gnome-look.org. My personal favourite is H2O Gtk2 Saphire. Then,
extract the contents of the tar file to a suitable directory1. Now,
since this is a GTK22 theme, create a ~/.gtkrc-2.0
file with the
following contents in the case of H2O theme: (Updated 2005-04-22)
include "/home/anirudh/.themes/H2O-gtk2-Saphire/gtk-2.0/gtkrc"
OR
gtk-theme-name = "H2O-gtk2-Saphire"
That is, just provide the path to the gtkrc file of the theme as an
argument to the include
directive in your ~/.gtkrc-2.0
file or
set gtk-theme-name
to the name of the theme.
gtk-theme-switch provides a simple GUI that will even let you preview themes besides from automating the above task. All you need to do is point to the theme's tar file and it will handle the rest.
If you want your custom GTK application to use a specific theme, just
add the following C code with suitable modifications before you call
gtk_init()
:
gchar *rcfile = "/home/anirudh/.themes/H2O-gtk2-Saphire/gtk-2.0/gtkrc"; gchar *rc_files[] = { rcfile, NULL}; /* declare other variables */ gtk_rc_set_default_files (default_files); /* initialize gtk */ gtk_init (&argc, &argv); /* code that follows gtk_init here */
If you want to let the user pick a GTK+ theme and have it affect only
your application, create a file in your application directory with
gtk-theme-name
set to the theme the user has selected. Then, simply
add it to the set of default files before calling gtk_init()
. Later,
when the user selects another theme, overwrite this file with the new
value.
gchar *tmprc = "temprc.txt"; /* declare other variables */ gtk_rc_add_default_file(tmprc); /* Initialize gtk */ gtk_init (&argc, &argv); /* code that follows gtk_init here */
CategoryProgramming Comment(s)
[1] Recommended: ~/.themes
[2] In the case of a GTK 1.x theme, edit the file ~/.gtkrc
.