Trac is being migrated to new services! Issues can be found in our new YouTrack instance and WIKI pages can be found on our website.

Changes between Version 1 and Version 2 of ThemingPidgin


Ignore:
Timestamp:
May 15, 2013, 2:07:09 AM (11 years ago)
Author:
Eion Robb
Comment:

Formatting help for RoadRunner?

Legend:

Unmodified
Added
Removed
Modified
  • ThemingPidgin

    v1 v2  
    1 Theming Pidgin.
     1= Theming Pidgin =
    22
    3         Pidgin's appearance is dictated by the interaction of three types of theme files working simultaneously at different levels:
     3Pidgin's appearance is dictated by the interaction of three types of theme files working simultaneously at different levels:
    44
    551. Operating System theme - affecting all aplications
     
    99In any particular case, the level at which theming efforts should focus depends on one's goal, knowledge of theming of each of the above file types, the availability of time and desire to sort through numerous setting parameters and the state of bugginess of software at that time.
    1010
    11 Example 1: Novice Proof.
     11== Example 1: Novice Proof ==
    1212Goal: To give only Pidgin a facelift for variety's sake.
    1313Theming Experience: Zero
     
    1515Time available: 15 min
    1616
    17         By far, the simplest "off the shelf" solution is to download the GTK+ theme installer package which includes a large number of ready GTK themes (engines and corresponding configuration files) as well as a theme switching preference tool.
     17By far, the simplest "off the shelf" solution is to download the GTK+ theme installer package which includes a large number of ready GTK themes (engines and corresponding configuration files) as well as a theme switching preference tool.
    1818       
    1919* Note: all package names that follow are for a Win32 system and can be downloaded here:
    2020http://gtk-win.sourceforge.net/home/index.php/Main/Downloads
    2121
    22 Installation:
     22=== Installation: ===
    23231. Download the package: gtk2-themes-2009-09-07-ash.exe
    24242. If Pidgin was installed in the currently standard way, GTK will be installed within it.  Thus, direct the Installation to that "Pidgin\GTK" folder.
    25253. After Installation, move "gtk2_prefs.exe" from "Pidgin\GTK" to "Pidgin\GTK\bin" subfolder.  This is the preference tool (theme selector) file that the installer puts in the wrong place.  If this isn't done, the preference tool will not see the new themes loaded.
    2626
    27 Theme Switching:
     27=== Theme Switching: ===
    28281. Go to "Pidgin\GTK\bin"
    29292. Start "gtk2_prefs.exe"
     
    3232
    3333
    34 Example 2: Getting Your Feet Wet.
     34== Example 2: Getting Your Feet Wet ==
    3535Goal: To change the appearance of all of your GTK aps (Pidgin, Ekiga, Gimp, etc.)
    3636Theming Experience: Minimal
     
    3838Time available: 1 hr
    3939
    40         If you got some time on your hands, understand the basics of GTK themes, just want a few themes you know by name and like to keep your system lean and mean (keep out anything unnecessary), you may want to get the GTK+ theme zip package and hand pick the elements you need.  Just be aware that theme engines and configuration files are packaged in separate directories, engine names are not always identical to the config file names, one doesn't work without the other and so you may end up having to experiment (which is why the installer is faster and simpler).
     40If you got some time on your hands, understand the basics of GTK themes, just want a few themes you know by name and like to keep your system lean and mean (keep out anything unnecessary), you may want to get the GTK+ theme zip package and hand pick the elements you need.  Just be aware that theme engines and configuration files are packaged in separate directories, engine names are not always identical to the config file names, one doesn't work without the other and so you may end up having to experiment (which is why the installer is faster and simpler).
    4141
    4242* Note: Due to current bugs, there may not be binary compatibility on win32 between compile-time and runtime gtk versions, ie: different apps may be impossible to satisfy with a single install of gtk.  In a perfect world, the following could work.
    4343
    44 Installation:
     44=== Installation: ===
    45451. Download the theme selector: gtk2_prefs-0.4.1.bin-gtk2.10-win32.zip
    46462. Download the theme package: gtk2-themes-2009-09-07-win32_bin.zip
    47473. If Pidgin was not installed in the currently standard way and GTK was installed not within it but for all GTK apps system wide - move relevant components from packages to corresponding folders in that GTK Installation.
    48     Unzip themes and pick the ones you want.  Configuration files are in "share" and engines in "lib" directories.  Thus, for a theme "Aurora", the folder "Aurora" would need to be moved from the package's "share\themes" to "GTK2-Runtime\share\themes" and the file "libaurora.dll" from the package's "lib\gtk-2.0\2.10.0\engines" to "GTK2-Runtime\lib\gtk-2.0\2.10.0\engines".
     48
     49Unzip themes and pick the ones you want.  Configuration files are in "share" and engines in "lib" directories.  Thus, for a theme "Aurora", the folder "Aurora" would need to be moved from the package's "share\themes" to "GTK2-Runtime\share\themes" and the file "libaurora.dll" from the package's "lib\gtk-2.0\2.10.0\engines" to "GTK2-Runtime\lib\gtk-2.0\2.10.0\engines".
    49504. Continue as above for each theme desired.
    50515. Unzip the theme selector and move "gtk2_prefs.exe" to "Pidgin\GTK\bin" subfolder.
    5152
    5253
    53 Example 3: The Comedy of Errors.
     54== Example 3: The Comedy of Errors. ==
    5455Goal: You spent countless hours in front of a monitor and want to reduce eye strain.  To accomplish this, you need to create a dark theme (light text on a dark background) for your entire system - all apps Pidgin included.
    5556Theming Experience: Little
     
    5758Time available:  Lots.
    5859
    59         If you thirst for knowledge, are not satisfied with off the shelf solutions, require maximum control over the appearance of your apps, have a flexible work schedule and a very understanding girlfriend - buckle up and hold on to your hat!  For the author of this passage, to learn how to theme WinXP, Thunderbird, Firefox and Pidgin took exactly one month with Pidgin being by far the most time consuming.  Why is this the case? Let's go back to the levels at which theming is applied.
    60         After you will have created your ultimate dark OS theme file, you will have the pleasure of seeing that many apps automatically will just have fallen into place, ie: without any additional theming efforts - not Pidgin! If your new OS theme produces white text on a black background, after a default Pidgin install, you will have the following settings and interaction of the three theme files.
     60If you thirst for knowledge, are not satisfied with off the shelf solutions, require maximum control over the appearance of your apps, have a flexible work schedule and a very understanding girlfriend - buckle up and hold on to your hat!  For the author of this passage, to learn how to theme WinXP, Thunderbird, Firefox and Pidgin took exactly one month with Pidgin being by far the most time consuming.  Why is this the case? Let's go back to the levels at which theming is applied.
     61
     62After you will have created your ultimate dark OS theme file, you will have the pleasure of seeing that many apps automatically will just have fallen into place, ie: without any additional theming efforts - not Pidgin! If your new OS theme produces white text on a black background, after a default Pidgin install, you will have the following settings and interaction of the three theme files.
    6163
    62641. OS - dark theme
     
    6668In this case, OS produces the dark theme; GTK's "MS-Windows" acts as a "transparent" layer showing what Win OS dictates and Pidgin's default theme similarly allows to show through what GTK is delivering.  The end result is reassuring - dark windows in both buddy and chat windows with buddy group names appearing white on black.  BUT, due to a known bug in GTK/GTK MS-Windows theme, OS's theme information isn't properly interpreted  resulting in buddies within groups appearing black on black - ie: invisible!  (Everything looks fine with a typical "Black on White" theme without the need for any further action but that was not our goal.)
    6769
    68 Theme.xml.
    69         To give users more control, Pidgin allows further customization through its own theme.xml files.  Pidgin's Buddy List theme.xml file offers exact control of text and background colour elements in the buddy list window.  BUT, as luck would have it, GTK's "MS-Windows" constrains what can be overridden (the only GTK theme to do so). Thus, theme.xml cannot work properly with it.  The end result is, to make use of the fine grain control of Pidgin's theme.xml, one must not use the GTK's MS-Win theme.  Which is particularly problematic since it is the only GTK theme that can show through Win OS appearance - all other GTK themes take over and mask it.  This, regrettably, means that all the effort you've invested in making a beautiful OS theme cannot be seen in Pidgin.  It also means that since you cannot rely on GUI information coming from the OS, you now MUST install a GTK theme pack with a theme selector tool (as discussed above) in order to circumvent the only decent looking but malfunctioning GTK file that comes with Pidgin.
    70         After downloading a theme pack, you get access to a large number of GTK themes the manifestation of which you can indirectly affect with theme.xml.  Details of theme.xml file syntax, explanation of controls available as well as some sample files can be found here:  https://developer.pidgin.im/wiki/BuddyListThemes
     70=== Theme.xml ===
     71To give users more control, Pidgin allows further customization through its own theme.xml files.  Pidgin's Buddy List theme.xml file offers exact control of text and background colour elements in the buddy list window.  BUT, as luck would have it, GTK's "MS-Windows" constrains what can be overridden (the only GTK theme to do so). Thus, theme.xml cannot work properly with it.  The end result is, to make use of the fine grain control of Pidgin's theme.xml, one must not use the GTK's MS-Win theme.  Which is particularly problematic since it is the only GTK theme that can show through Win OS appearance - all other GTK themes take over and mask it.  This, regrettably, means that all the effort you've invested in making a beautiful OS theme cannot be seen in Pidgin.  It also means that since you cannot rely on GUI information coming from the OS, you now MUST install a GTK theme pack with a theme selector tool (as discussed above) in order to circumvent the only decent looking but malfunctioning GTK file that comes with Pidgin.
    7172
    72 Creating a theme.xml file.
    73         The quickest way to make your own custom theme.xml file is to download a ready made theme from the above link and edit it to suit your needs with your favourite text editor (like Vim).  Alternatively, you can write one from scratch by following instructions on the wiki.  If creating your own colour scheme, a convenient resource of hex colour codes can be found here:  http://www.colour-hex.com/popular-colours.php  If you like to experiment with colours, you can use the colour wheel present in Windows for selecting your desktop colour.  Once you come up with a colour you like, resulting RGB numbers can be plugged into a RGB to Hex colour converter which can be found here: http://www.javascripter.net/faq/rgbtohex.htm
     73After downloading a theme pack, you get access to a large number of GTK themes the manifestation of which you can indirectly affect with theme.xml.  Details of theme.xml file syntax, explanation of controls available as well as some sample files can be found here:  https://developer.pidgin.im/wiki/BuddyListThemes
     74
     75=== Creating a theme.xml file ===
     76The quickest way to make your own custom theme.xml file is to download a ready made theme from the above link and edit it to suit your needs with your favourite text editor (like Vim).  Alternatively, you can write one from scratch by following instructions on the wiki.  If creating your own colour scheme, a convenient resource of hex colour codes can be found here:  http://www.colour-hex.com/popular-colours.php  If you like to experiment with colours, you can use the colour wheel present in Windows for selecting your desktop colour.  Once you come up with a colour you like, resulting RGB numbers can be plugged into a RGB to Hex colour converter which can be found here: http://www.javascripter.net/faq/rgbtohex.htm
    7477Finally, if making a theme to be used with a transparency plugin, remember that dark colours are less transparent than light ones.  With monitor brightness set to minimum, dark backgrounds will simply look black.  Thus, for the best transparency effect, have to use a light colour palette (which unfortunately is the opposite of what you want if the aim is to create a dark background; therefore, decide what's more important to you).
    7578
    76 Installing a theme.xml file.
     79=== Installing a theme.xml file ===
    77801. When the file is ready, keep one copy (in backup) under the theme name.     
    78812. Make a copy of it and rename the copy to "theme.xml"
     
    8790
    8891
    89 Putting it All Together.
    90         Now all the components are in place but there is still one more bug we have to overcome.  In Pidgin's theme.xml file, "blist" - the 'colour' attribute that sets the background colour of the entire buddy list - doesn't work.  So if the GTK theme is light, the background colour behind buddy text is dark and the buddy list is short or groups are collapsed - the light background will show bellow the buddy list.
    91         To hide this final problem, we have to use both a dark GTK theme and a dark theme.xml.
     92=== Putting it All Together ===
     93Now all the components are in place but there is still one more bug we have to overcome.  In Pidgin's theme.xml file, "blist" - the 'colour' attribute that sets the background colour of the entire buddy list - doesn't work.  So if the GTK theme is light, the background colour behind buddy text is dark and the buddy list is short or groups are collapsed - the light background will show bellow the buddy list.
     94
     95To hide this final problem, we have to use both a dark GTK theme and a dark theme.xml.
    92961. Using the theme selector tool choose a dark background (for example: Xcl-clarius-dark)
    93972. Start Pidgin and go to: Tools>Preferences>Themes
     
    96100
    97101
    98 Example 4: Going Pro.
     102== Example 4: Going Pro ==
    99103Goal: To attain complete control of GUI of your GTK dependent apps like Pidgin.
    100104Theming Experience: Moderate - Advanced
     
    102106Time available:  You love it so who's counting?
    103107
    104         If you found this journey exhilarating, are looking for a new hobby or are thinking of going pro in the field of GTK GUI development you will have to master editing GTK Theme configuration files (gtkrc's) directly.  This is beyond the scope of this discussion; however, a good starting point for that can be found here: https://live.gnome.org/GnomeArt/Tutorials/GtkThemes
     108If you found this journey exhilarating, are looking for a new hobby or are thinking of going pro in the field of GTK GUI development you will have to master editing GTK Theme configuration files (gtkrc's) directly.  This is beyond the scope of this discussion; however, a good starting point for that can be found here: https://live.gnome.org/GnomeArt/Tutorials/GtkThemes
    105109
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!