纯粹是回帖越写越长,最后决定还是在自己的blog保留一份。和原文相比略有修改,修改了一些错字和不太恰当的描述,加了一些图辅助说明,算是一篇比较认真制作的文吧。
kde的ui toolkit是qt,gnome的ui toolkit是gtk,所以下文很多地方直接使用了gtk和qt。
先说窗口边框,metacity,kwin,compiz各有不同。
metacity支持自己的主题,可以用文件配置。kwin则是从代码级别上支持主题,新主题就需要写个新代码,compiz的emerald和 metaciy类似不谈。所以如果想让kwin和metacity和emerald类似,那么就需要有个kwin的边框引擎支持从图片或者什么其他的配置,kwin目前官方有aurorae这个引擎,支持直接从kde-look下载,通过svg图片配置。
kwin的各个主题,都是需要独立实现的
高度集成的aurorae,从kde-look直接下载
界面的话和qt和gtk又有不同,gtk支持界面每个部件使用不同引擎,统一用gtkrc管理,而qt的界面是单一引擎,配置都是各个引擎自己独立配置,各有自己的配置文件,再外加上colorscheme组合出各种颜色。
gtkrc样例
colorscheme配置,注意里面的获取新方案,我十分心水kde和kde-look的高度集成
plasma的话位置在~/.kde/share/apps/desktoptheme下面,都是svg文件,其中连文字边距等等信息也都是通过 svg实现的。auroae的边框引擎是基于plasma的,所以也是svg,在~/.kde/share/apps/auroae下面,和 emerald,metacity的多个分着的png不同,基本是一个整体的svg,编辑门槛比较高一些,但是好处就是svg是矢量,做出来的主题在缩放之后有更好的支持。
plasma主题选择,依旧支持kde-look直接下载安装
总结来看,就是gtk引擎的组合相对更加自由,qt更加固定,容易让开发者做出那种整体协调的主题。例如oxygen,bespin这种整体超级协调的引擎。当然qt也有qtcurve这种超等级高自定义的引擎,几乎可以拿来模拟任意gtk主题,外加qtcurve同时也实现了gtk引擎,qt和 gtk程序统一界面也很容易。qtcurve的另一个优点就是可以用gui配置,简单易用,而gtkrc没有编辑工具(据我所知)。
另外qt原生支持gtk主题,这点比起gtk的态度貌似好很多……
qtconfig中配置gtk主题
kde中配置gtk风格
P.S.
截图来自kde4.5rc3,如果你很奇怪你的kde为什么界面不一样,那么说明你应该考虑更新一下。
Gnome的主题千千万,但貌似大多都要依赖各自不同的主题引擎,相比之下KDE和KDE-look的一站式下载就友好多了……
不过这样的话KDE主题的开发难度不是一下子提升了么……
gtk主题一站式下载并不困难,一般下载之后放到~/.themes/gtk-2.0/下面解压就好了
metacity就是放到~/.themes/metacity-1.0这里而已,都很容易
gnome貌似只有一个老掉牙的gnome-art还是什么站点的集成(不支持用户上传貌似)……gnome为啥不做呢,不知道。现在kde和opendesktop.org高度集成,用着真是爽啊……
说到gtk和qt的主题差别,换句话说就是KDE主题不能有oxygen+bespin这种组合,而gtk主题则可以用nodoka+aurora+murrine+等等等等各种组合。不会出现oxygen的button,bespin的滚动条这种东西(有人特别写了代码除外)。qtcurve这种大而全和gtk就比较类似。
的确解压之后就可以装,但是你装上之后就提示“该主题依赖××引擎,当前的显示效果可能不同”云云……
那就做一下发行版集成好了……搜索对应的gtk-engine安装上……没安装没办法啊,不过已经算可以啦