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).

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