= Theme Engine Hacking Tricks = This page contains a handful useful tricks to get going on some GTK+ theme engine hacking. This page was created during initial Hardy artwork brainstorm. == Get Hold of TheWidgetFactory == [[http://www.stellingwerff.com|Richard Stellingwerff]] wrote a little helper application for testing themes. It is the one you see in all those standard theme screenshots. Install it by copy pasting the command below into a terminal {{{ sudo apt-get install thewidgetfactory }}} Run it like this to preview your theme(s) {{{ twf }}} == Local Installation of Engine == There is a secret way to use a theme engine without compiling it. This is useful if you want to apply a hack to, say, Murrine, but don't want uninstall the system wide Murrine. The trick is to create a symlink to the engine in {{{~/.gtk-2.0/engines}}}. I usually symlink the engine directly here from my development tree. When you've compiled your engine (''not installed it'') the engine lib will be placed in {{{mytheme/.libs/}}}. I create the symlink like this: {{{ ln -s /home/mikkel/Projects/mytheme/.libs/libmytheme.so /home/mikkel/.gtk-2.0/engines }}} To use it just refer to {{{mytheme}}} as the engine in your {{{gtkrc}}} file(s). == Load Appearance CApplet from Command Line == Run the theme changer from the command line. It may display useful debugging info. In Gutsy {{{ gnome-appearance-properties }}} == Beware of GLib Type Duplicates == If you just go ahead on create a hacked up Murrine or other engine for your self beware that GLib does not like different modules registering types of the same name. If you are hacking on Murrine and your custom engine is called Marinade then run the following from the top project dir to replace relevant type names {{{ sed -i -e "s@MurrineRcStyle@MarinadeRcStyle@g" src/murrine_rc_style.c sed -i -e "s@MurrineRcStyle@MarinadeRcStyle@g" src/murrine_rc_style.h sed -i -e "s@MurrineStyle@MarinadeStyle@g" src/murrine_style.h sed -i -e "s@MurrineStyle@MarinadeStyle@g" src/murrine_style.c }}}