让Firefox和KDE更加协调

csslayer | 2010/12/11

firefox不可否认是一个很优秀的浏览器(也是我的默认浏览器),毕竟缺少Qt界面的好用的浏览器,于是还是只能在流行的firefox,chromium,opera之间选择。

其实这是一个在网上被很多人讲过的问题,由于firefox在linux下面是使用gtk作为界面绘制(虽然也不是传统的gtk),似乎对gnome更加友好,默认的firefox在KDE下有一下几大问题。

1、界面不够协调,不得不说我觉得oxygen比起gnome默认的clearlooks要强不少,但是firefox想用上oxygen的主题,主要还有两道鸿沟,第一oxygen是qt的界面主题,而gtk不支持qt的主题。第二是firefox对gtk的支持也同样不完美,比如窗口背景是黑色,菜单文字有些主题竟然不变。

2、不使用KDE的文件关联,打开文件窗口。最最无语的就是文件关联,如果不安装gnome-mime-data等包,甚至无法双击方便打开文件,而安装之后,也有很多问题。关联和KDE不统一,导致pdf文件双击时只能用gimp打开等等窘事。

这里实在是要感谢openSUSE的这个项目,Firefox-KDE-OpenSUSE,openSUSE说起来是个比较亲KDE的发行版,于是也间接导致了这个项目的诞生。openSUSE用户直接安装就好,Archlinux的用户的话,可以从AUR上安装这个包或者用我和bfo提供的源(在aur页面上有链接),至于其他发行版我不太清楚情况,据体验fedora的firefox似乎也还不错。

这个openSUSE的补丁能够带来以下特性,打开文件窗口使用KDE的原生窗口(当然flash内部的打开文件是不行的),系统代理使用KDE,按照KDE设置检测默认浏览器,使用KDE文件关联,Plasma消息提示。其实openSUSE的patch也同时兼顾的gnome,不过既然默认的firefox已经工作的挺好,gnome用户其实没什么必要用这个patch了。

功能的方面就是这个了,界面上推荐两个方案一起使用,一个是KDE look上的Oxygen KDE,另外一个是gtk-oxygen-engine。Oxygen KDE实在也是一个及其强悍的项目,已经从最初的固定Color Scheme到完全支持KDE的Color Scheme(3.0系列)。对于Firefox 3.6的用户,推荐这个版本。虽然现在已经beta8了,但是由于3.0系列仅仅声明支持Firefox 4,beta4之后的版本由于加入了动画,导致菜单的显示会有些不正确。

gtk-oxygen-engine是一个不依赖Qt,而是按照oxygen绘制的方法重新实现的一个主题,gtk用户也可以试试看。同时用上这两个的话,真的已经看不出原来firefox的样子了。最后给个截图:(截图中还用了tabs on top,personal menu等插件调整界面)

gitorious.org/firefoxkdeopensuse
Tags:

8 FEEDBACKS

  1. 更新好勤快啊。 gtk-oxygen-engine不错,通用性挺好……除了元件大小不一样之外区别真的不大了。

  2. 要是能把标题栏隐藏掉就更好了~

  3. 我曾经使用 gnome,卸载了 gedit,然后在火狐里双击纯文本文件使用 Oooo 打开了。。。

  4. 不知道是不是因为安装了这些,我总觉得kde中的ff比较卡,特别是启动的时候,还有页面很长的时候

  5. @babydragon 确实在KDE里面没在Gnome里流畅,主要跟待被切换出来的页面的复杂程度有关。这也是我转投Chrome的原因之一。我觉得慢的一个可能的原因是每次切换标签后firefox会重新绘制一遍新显示出的标签,而Chrome似乎不会,所以在我这里Chrome切换标签比FF流畅很多。

  6. wm

    Fx有QT的吧,似乎…

  7. @wm 有,还不完善而已。

  8. stecue

    Oxygen界面俺怎么都看不习惯。我直接使用QtCurve主题,所有Qt和GTK程序,包括OOo/Filezilla之类全部都有统一外观,当然firefox更不在话下了。

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.