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. 右京样一 says:
    Google Chrome 5.0.375.125 Windows 7

    Gnome的主题千千万,但貌似大多都要依赖各自不同的主题引擎,相比之下KDE和KDE-look的一站式下载就友好多了……

    不过这样的话KDE主题的开发难度不是一下子提升了么……

    [Reply]
  2. csslayer says:
    Google Chrome 5.0.375.70 Windows Vista

    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就比较类似。

    [Reply]
  3. 右京样一 says:
    Google Chrome 5.0.375.125 Windows 7

    的确解压之后就可以装,但是你装上之后就提示“该主题依赖××引擎,当前的显示效果可能不同”云云……

    [Reply]
  4. csslayer says:
    Firefox 3.6.8 GNU/Linux

    那就做一下发行版集成好了……搜索对应的gtk-engine安装上……没安装没办法啊,不过已经算可以啦

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

Leave a Reply

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

Note: Commenter is allowed to use '@User+blank' to automatically notify your reply to other commenter. e.g, if ABC is one of commenter of this post, then write '@ABC '(exclude ') will automatically send your comment to ABC. Using '@all ' to notify all previous commenters. Be sure that the value of User should exactly match with commenter's name (case sensitive).