本章介绍 GNOME 桌面中可用的主题的类型,如何安装主题,以及如何创建自定义主题。
主题是指定 GNOME 桌面部分视觉外观的一组协调设置。用户可以选择主题来更改桌面的外观。
下列类型的主题将影响 GNOME 桌面的不同部分:
桌面主题决定了窗口、面板和小程序的视觉外观。桌面主题也决定了窗口、面板和小程序中显示的 GNOME 兼容界面项(如菜单、图标和按钮)的视觉外观。GNOME 中的某些桌面主题是为特殊的访问需求而设计的。用户可以从主题
首选项工具中的小部件主题选项卡部分选择一个桌面主题。
窗口框架主题仅决定窗口周围的框架的外观。用户可以从主题
首选项工具中的窗口框架选项卡部分选择一个窗口框架主题。
桌面主题位于 /usr/share/themes 目录下。文件系统中桌面主题的典型结构如下:
/usr/share/themes/主题名称/gtk-2.0/gtkrc
/usr/share/themes/主题名称/pixmaps/*.*
通常,新的桌面主题以 .tar.gz 文件的形式提供。要安装新的桌面主题,请解压缩 .tar.gz 文件,然后将 .tar 文件解包到 /usr/share/themes 目录下。
用户可以安装自己的桌面主题。如果用户安装了一个桌面主题,该主题存储在 $HOME/.themes 目录下。
窗口框架主题位于 /usr/share/themes/主题名称/metacity-1 目录下。文件系统中窗口框架主题的典型结构如下:
/usr/share/themes/主题名称/metacity-1/metacity-theme-1.xml
/usr/share/themes/主题名称/metacity-1/*.*
通常,新的窗口框架主题以 .tar.gz 文件的形式提供。要安装新的窗口框架主题,请解压缩 .tar.gz 文件,然后将 .tar 文件解包到 /usr/share/themes 目录下。
用户可以安装自己的窗口框架主题。如果用户安装了一个窗口框架主题,该主题存储在 $HOME/.themes 目录下。
GNOME 桌面提供了几种为有特殊视觉需要的用户而设计的主题。例如,某些主题为视力不佳的用户而设计。主题中包含了每种图标的若干版本,因此图标可以在每个主题中显示。
您可能需要为应用程序安装新图标。安装新图标时,必须创建该图标的若干版本,这样才能在主题中正确显示该图标。您可以创建几种格式的图标,例如便携式网络图形 (PNG) 格式。GNOME 桌面的建议的图标尺寸为 48 像素 × 48 像素。使用这一尺寸,多数主题都可以更改图标的比例。
安装新图标时,请创建图标的下列 48 × 48 像素版本:
常规图标
低对比度图标
高对比度图标
反向高对比度图标
如果可能,也要为不需要大图案的主题创建以上图标的 16 × 16 像素版本。
将图标安装到为 安装桌面主题 或 安装窗口框架主题 中的主题指定的图像文件位置。例如,要将图标添加到 HighContrast 主题中,请将图标添加到 /usr/share/themes/HighContrast/pixmaps 目录下。向相关主题文件中添加对图标的引用。例如,要向 HighContrast 主题添加图标,请将对图标的引用添加到 /usr/share/themes/HighContrast/gtk-2.0/gtkrc 文件中。
以上说明仅适用于下列类型的图标:
在桌面环境中的应用程序内部使用的图标。
GTK+ 应用程序内部使用的图标,或 GTK+ 内部图标。
有关如何为应用程序启动程序和面板创建图标的更多信息,请参见 http://www.freedesktop.org/standards/icon-theme-spec.html。
如果桌面主题不适合用户的需要,您可以创建自定义桌面主题。要创建自定义桌面主题,请执行下列步骤:
在 /usr/share/themes 目录下为该主题创建一个目录结构。使用与其他主题相同的目录结构。例如,要创建名为 SmallPrint 的主题,请创建以下目录:
/usr/share/themes/SmallPrint/gtk-2.0
/usr/share/themes/SmallPrint/pixmaps
找到最可能满足用户需要的 gtkrc 主题文件。将该文件复制到新主题的 gtk-2.0 目录下。
在文本编辑器中打开 gtkrc 文件,并根据需要修改界面元素的属性。
如果新主题包含图像,请将新主题的图像安装到该主题的 pixmaps 目录下。如果新主题使用其他主题的图像,则无需为新主题创建这些图像的副本。而应该确保 gtkrc 文件的 pixmap_path 项中对图像的引用是正确的。
用户现在可以选择新主题了。
有关 gtkrc 文件的更多信息,请参见 http://developer.gnome.org/doc/API/2.0/gtk/index.html。