KDE和Gnome主题架构对比

纯粹是回帖越写越长,最后决定还是在自己的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为什么界面不一样,那么说明你应该考虑更新一下。

This entry was posted in KDE and tagged , , , . Bookmark the permalink.

5 Responses to KDE和Gnome主题架构对比

  1. Pingback: 重新认识 KDE4.x — 第三弹:Kwin 并不是垃圾 | iBentu

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.