读书人

[原创]Gnome 自定义正题

发布时间: 2012-06-29 15:48:46 作者: rapoo

[原创]Gnome 自定义主题

gnome 的主题系统设计的很好, 充分体现了linux 用目录和文件进行系统配置的思想(win用的是注册表的形式)。
但是像更换主题和主题自定义这么桌面化的任务都要使用文本的配置形式, 就有点~看来linux的桌面化进程不容乐观啊~
首先看gnome的主题都放在哪里, 第一个可能的地点当然是usr目录下的share文件夹啦, 这里边放的是linux程序的一些共享给所有用户使用的东西, 比如程序的图片文件, 存储数据库文件, 有些配置文件也放在这里, 还有最重要的就是今天要看的主题啦。在/usr/share/themes 里边放的都是ubuntu(或其他发行版)自带的主题文件。看看都有什么文件吧~
AgingGorilla? ?? ? Default? ?? ?? ?? ???Industrial? ?? ?? ???Raleigh
Ambiance? ?? ? Dust? ?? ?? ?? ?? ?? ?Inverted? ?? ?? ???Redmond
Atlanta? ?? ?? ???Dust Sand? ?? ?? ?? ???Metabox? ?? ?? ???Simple
Bright? ?? ?? ???Emacs? ?? ?? ?? ???Mist? ?? ?? ?? ?? ?ThinIce
Clearlooks? ?? ? Esco? ?? ?? ?? ?? ?? ?New Wave
ClearlooksClassic??HighContrastInverse? ?? ?? ? New Wave Dark Menus
Crux? ?? ?? ???HighContrastLargePrintInverse??Radiance
这些文件夹每一个都可以认为是一个主题,一般来讲, 主题有两个组件, 一个是窗口管理器用的窗口边框的主题组件, 还有一个是gtk引擎使用的按钮啊, 进度条啊, 菜单栏啊, 文本框什么的UI控件的主题组件。上边所列出的文件夹(刚才说了, 可以认为每一个都是一个主题)有的同时包含了窗口管理器主题和UI控件主题两个组件, 有的只包含窗口管理器的主题, 有的只有UI控件的。

拥有窗口管理器主题组建的主题文件夹中有一个metacity-1文件夹, 拥有gtkUI控件主题组件的主题在文件夹中还有一个gtk-2.0文件夹。不是每个这里说的主题都会显示在“外观选项”的主题选项卡中(桌面右键》更改桌面背景》主题选项卡), “外观选项”的主题选项卡显示的是主题套件(可以理解为套装), 一个完整的主题套件是由一个窗口边框主题组件和一个UI控件主题以及一些额外的设定组成的。

一个主题套件是由一个主题文件夹中的index.theme?指定的。比如, ubuntu默认的主题Ambiance文件夹下就有一个index.theme文件。以.theme结尾的文件是一种特殊的文件, 在gnome的图形化文件管理器(nautilus)中显示的文件名会是这个主题的名称, 还是比如Ambiance这个主题, 使用终端进入这个文件夹列目录的时候显示的是index.theme, 但是使用图形化文件管理器打开Ambiance这个文件夹, 会看到一个叫Ambiance的文件, 这里显示的文件名其实是这个主题套件的名字。

好了, 打开index.theme看看吧, 由于这个文件是特殊的文件, 所以在文件管理器里直接打开是不行的,要先打开一个gedit文本编辑器(程序》附件》文本编辑器), 然后从文件管理器中将这个文件拖进文本编辑器里, 才能打开看里边的内容:

[Desktop Entry]
Type=X-GNOME-Metatheme
Name=Ambiance
Comment=Ubuntu Ambiance theme
Encoding=UTF-8

[X-GNOME-Metatheme]
GtkTheme=Ambiance
MetacityTheme=Ambiance
IconTheme=ubuntu-mono-dark
CursorTheme=DMZ-White
ButtonLayout=close,minimize,maximize:
看到name属性了吗, 这个就是这个主题套件的名称, 同时, 这个就是显示在文件管理器中这个文件的文件名, 特殊吧, :-)。
下面的Comment是这个主题的注释,下边GtkTheme是这个主题套件使用的UI控件主题的名字, 这里可以写index.theme文件所在目录的名称, 也可以写其他主题目录的名字(比如Dust ), 写的是哪个目录的名字, 就会使用那个目录下的gtk-2.0目录下的主题, 所以, 你写上去的目录下一定要有gtk-2.0目录啊~MetacityTheme这个属性和GtkTheme基本相同,??不同是要写目录下有metacity-1文件夹的。ButtonLayout 这个是控制窗口标题栏的最小化, 最大化, 关闭按钮的位置的, 还可以加一个menu(使用冒号分割), 例如 menu:minimize,maximize,close? ?这个就是windows窗口那样的。?
到这里我们就可以定制自己的主题啦, 首先可以从网上下载自己觉得好看的主题, 下载完后点右键, 选择使用其他程序打开, 然后选择主题安装器, 然后就安装好了, 用户自己安装的主题被放在用户家目录的.themes 文件夹下。

读书人网 >操作系统

热点推荐