This chapter describes the types of theme that are available in the GNOME Desktop, how to install themes, and how to create a custom theme.
A theme is a group of coordinated settings that specifies the visual appearance of a part of the desktop environment. Users can choose themes to change the appearance of the desktop.
The following types of theme affect different parts of the desktop environment:
Desktop themes determine
the visual appearance of windows, panels, and applets. Desktop themes also
determine the visual appearance of the GNOME-compliant interface items that
appear on windows, panels, and applets, such as menus, icons, and buttons.
Some of the desktop themes that are available are designed for special accessibility
needs. Users can choose a desktop theme from the Widget Theme
tabbed section in the Theme
preference tool.
Window frame
themes determine the appearance of the frames around windows only. Users can
choose a window frame theme from the Window Frames tabbed
section in the Theme
preference tool.
Desktop themes reside in the /usr/share/themes directory. The typical structure of a desktop theme in the file system is as follows:
/usr/share/themes/theme-name/gtk-2.0/gtkrc
/usr/share/themes/theme-name/pixmaps/*.*
Typically, a new desktop theme is supplied as a .tar.gz file. To install the new desktop theme, unzip the .tar.gz file, then untar the .tar file into the /usr/share/themes directory.
Users can install their own desktop themes. If a user installs a desktop theme, the theme is stored in the $HOME/.themes directory.
Window frame themes reside in the /usr/share/themes/theme-name/metacity-1 directory. The typical structure of a window frame theme in the file system is as follows:
/usr/share/themes/theme-name/metacity-1/metacity-theme-1.xml
/usr/share/themes/theme-name/metacity-1/*.*
Typically, a new window frame theme is supplied as a .tar.gz file. To install the new window frame theme, unzip the .tar.gz file, then untar the .tar file into the /usr/share/themes directory.
Users can install their own window frame themes. If a user installs a window frame theme, the theme is stored in the $HOME/.themes directory.
The desktop environment provides several themes that are designed for users with special visual needs. For example, some of the themes are designed for users with low vision. The themes contain several versions of each icon so that the icon can be displayed in each theme.
You might need to install a new icon for an application. When you install a new icon, you must create several versions of the icon, so that the icon displays correctly in the themes. You can create the icons in several formats, for example Portable Network Graphic (PNG) format. The suggested size of icons for the desktop environment is 48 pixels by 48 pixels. At this size, most themes can rescale the icons.
When you install a new icon, create the following 48 × 48 pixel versions of the icon:
Regular icon
Low contrast icon
High contrast icon
Inverse high contrast icon
If possible, create 16 × 16 pixel versions of the each of the icons above also, for themes that do not require large print.
Install the icons to the image files location that is specified for the theme in To Install a Desktop Theme or To Install a Window Frame Theme. For example, to add icons to the HighContrast theme, add the icons to the /usr/share/themes/HighContrast/pixmaps directory. Add references to the icons to the relevant theme files. For example, to add icons to the HighContrast theme, add references to the icons to the /usr/share/themes/HighContrast/gtk-2.0/gtkrc file.
The instructions above apply only to the following types of icon:
Icons that are used within applications in the desktop environment.
Icons that are used internally by GTK+ applications, or GTK+ stock icons.
For more information on how to create icons for application launchers and for panels, see http://www.freedesktop.org/standards/icon-theme-spec.html.
If the desktop themes are not suitable for the needs of your users, you can create a custom desktop theme. To create a custom desktop theme, perform the following steps:
Create a directory structure for the theme in the /usr/share/themes directory. Use the same directory structure that other themes use. For example, to create a theme that is called SmallPrint, create the following directories:
/usr/share/themes/SmallPrint/gtk-2.0
/usr/share/themes/SmallPrint/pixmaps
Locate the gtkrc theme file that is closest to meeting the needs of your users. Copy the file to the gtk-2.0 directory of your new theme.
Open the gtkrc file in a text editor, and modify the attributes of the interface elements as required.
If the new theme includes images, install the images for the new theme in the pixmaps directory of your new theme. If the new theme uses images from another theme, you do not need to create copies of the images for the new theme. Instead, ensure that the reference to the images in the pixmap_path entry in the gtkrc file is correct.
Users can now choose the new theme.
For more information on gtkrc files, see http://developer.gnome.org/doc/API/2.0/gtk/index.html.