Enlightenment 17(准确的版本号其实是0.17.0)是一个很有特点的“东西”,说它是桌面环境,它比 GNOME 、 KDE 之类的 DE 要轻得多,甚至比 XFCE 和 LXDE 都要轻;说它是窗口管理器,它又有自己的一套 toolkit —— EFL ,包括了从底层图形库到窗口组件库乃至 dbus 库等全套桌面开发设施,而且还具有跨平台、轻量高效的特点(有一个基于它的智能手机项目 OpenMoko)。按照官方的说法, E17 是一个 Window Manager 和 Desktop Shell ,也能算是一个小型的 Desktop Environment 。 E17 的开发过程极其漫长,从上世纪 90 年代 E16 正式版推出后, E17 经过了十几年的开发,才从 alpha 到 beta 到今天的正式版,此间甚至有 0.16.999 这样的版本号。十年磨一剑,其精雕细琢的程度让 GNOME3 汗颜(想想 GNOME Shell 3.0 吧,我实在无法接受那是一个“正式版”)。

为什么会想到要尝试 E17 呢?虽然我曾今是一个爱折腾的人,但近来已然感受到无意义的折腾是浪费时间,所以投身 E17 是有着一些更为实际的原因的—— GNOME3 sucks and I don’t like KDE!我的旧电脑是很早以前的奔腾双核,跑 GNOME3 感觉颇为吃力,各种特效都有些卡顿,开机时间极长,而且 GNOME Shell 本身太难用,不得不装一堆插件,这一方面加剧了卡顿的情况(这些插件都是 JS + CSS 的),另一方面又带来了严重的不稳定性——尤其令我无法忍受的是每次 GNOME 升级都要 break 掉一堆插件……因而,趁着换电脑的时机,我想尝试一把这个被一些人吹上天的、极具个性的 E17 。然而经过一周的体验,我最终还是将它卸载,换成了 Cinnamon ( GNOME3 的 Linux Mint fork )。今天就让我讲讲这一周以来的感受以及放弃 E17 的原因。(由于卸载时过于仓促,没有留下截图, E17 的默认外观可以参看 TualatriX 的这篇文章及 E17 的官网风格。)

1. 第一印象——敏捷、冷静、惊艳

装上 E17 后的第一反应是——这玩意儿太快了!我用的是 Archlinux ,只装了一些基本软件,用 slim 作 Display Manager ,没有安装臃肿的 GDM 和它的一堆依赖。如此下来居然只占了不到 5G 的硬盘空间,开机速度竟然不到5秒(使用自动登陆,从在 GRUB 选择启动项后开始算起,另外我用的是 SSD ,这里提供一个对比:Windows 7原盘安装后的启动时间约为十几秒)。桌面菜单、底部的“Shelf”,各种组件的操作都非常流畅,毫不拖泥带水。

说完了速度,该说说外观。对于桌面,我是一个比较讲究美观的人,这也是我一直难以接受平铺式窗口管理器的一个原因(在我看来某些 Tiling WM 所谓的“绚丽外观”实在是不堪入目,就算能够达到我期待的效果,也应该需要大量的配置)。 E17 的默认外观让我这个挑剔的人都由衷称赞——虽是深色调的,但不让人觉得沉闷(我在用 GNOME3 的时候是不怎么喜欢深色主题的),要说原因也许是所有细节处都点缀着恰到好处的蓝色亮光。总体给人一种冷静的感觉,让人能够专注于工作和内容,不被过于华丽的图案分散注意力。

外观是静态的,而动态的“效果”也是桌面中十分重要的。之前我也体验过 XFCE 、 LXDE 、 Openbox 等一票轻量级的 DE/WM ,对于所谓“让老爷机重获新生”之类的说法已经不抱什么幻想——轻量必然要牺牲掉一些效果。然而这次的 E17 却可以说是名副其实的“回春术”,在体积小、占用资源少的同时,有着相当不错的动画效果,这也许该归功于它自己的高效图形库。最大化、最小化、打开新窗口、切换工作区、点击按钮等等几乎所有的细节,都有与动作本身的意义相符的动画,幅度也恰到好处,并不是“为了动画而动画”(比如 Compiz Fusion 的动画就过分泛滥)。许多动画都给人以“呼吸”的效果(尤其是那些蓝色的光芒,动画时很有呼吸灯的感觉),给整个桌面增添了一丝生气。可以说,总体的动画效果算得上惊艳——这里的“惊艳”并不是一味强调“绚烂”,而是和 Windows 7 / MacOSX 的默认动画效果类似的,更实用的“惊艳”。

2. 灵活的定制性

E17 的设计原则第一条就是“CHOICE IS GOOD”。它的配置中心真是让我看花了眼,每一个动画效果、每一处外观、每一个鼠标和按键的行为都是可以自由设置的。而它的模块化设计又使得你可以方便地增减各种模块(网络也有不少扩展模块供选择)。如果你愿意,你可以把 E17 配置成一个朴素的 Tiling WM (包括平铺式引以为傲的强大快捷键同样也能做到),也可以把它配置成炫到晃眼的 Compiz Fusion 。默认配置基本上能满足大部分人的需求(除了 ALT-Fx 是切换工作区这一点比较反人类以外),剩下的一小部分也可以通过修改配置来满足特殊需要。别说什么 GNOME 、 KDE 其实也可以配置,只要你编辑某某文件、或是修改 dconf/gconf ……那种“配置”其实已经可以算是 Hack 了, E17 的配置项可都是条理清晰地放到了 GUI 里,不用你劳心费神 Google !

在这里我不想评论 E17 这种近乎疯狂的可定制性和 GNOME3 “代替用户选择最好的”之间究竟孰优孰劣。但有一个事实不得不说——中文环境下 E17 的设置中心简直是噩梦,翻译不全不是最大的问题,事实上,反倒是翻译的那一部分经常意义不明,要换成英文才能明白其本意。似乎 E17 的中文翻译只有一两人在做,出现这种情况也在所难免。

3. 奇怪的主题

在这样灵活的定制性的基础上, E17 的主题支持就更是强大——你可以理解为 E17 的主题是把所有的配置、外观甚至是模块打了个包,能够控制整个系统的每个细节,从而达到最好的统一性,并且还为了性能考虑编译成二进制。一个 E17 主题比 GTK主题 + 图标主题 + 窗口主题 + GNOME Shell 主题还要丰富。然而,为什么说它“奇怪”呢?奇怪的不是主题系统,而是网络上的那些主题。我在网络上转悠了一圈,看了不少 E17 主题,比如 http://e17-stuff.org/ 这个网站。不论是评分最高还是下载量最高的主题,个人认为都挺难看的。几乎所有 E17 主题都是如此,完全不能和默认主题相比。搞得我都有点怀疑是不是自己的审美有问题。

4. 成也细节,败也细节

E17 对细节的打磨可以说到了执着的地步——毕竟它可是花了十几年才做出来的东西。之前说的各处细微的动画效果就是其中一个例子。其他例子还包括超出屏幕范围的组件、菜单会自动滚动,以及把一个小小的“运行程序”功能打造成了类似 GNOME Do 和 Spotlight 的强大命令中心等等……整个桌面运行十分稳定,就连日志里也很少有报错信息,这和 GNOME 形成鲜明对比。

然而,不知是设计者的疏忽遗漏还是有意为之,一个很重要的细节却不尽如人意——和 GTK/QT 应用程序的整合性。在 E17 里,使用原生了应用程序可称享受,普通的 X 应用程序也凑合,可 GTK 或是 QT 程序就没那么幸运了。最严重的问题就是外观了。虽然 E17 主题是可以附带 GTK 主题的,但是实际上很难找到这样的 E17 主题,从而导致大部分桌面程序在 E17 里看起来非常违和。必须花很多精力去找一个接近 E17 外观的 GTK 主题。另外, E17 是会管理 GTK 主题的,使得 dconf/gconf 以及 gtkrc 里有关主题的设置无效了(所以安装 lxappearance 之类的东西完全是徒劳),这样就无法微调主题,尤其是字体——虽然 E17 的字体设置对 GTK 同样有效,但不知什么原因, GTK 里的字号看起来总是大一点。

不幸的是,原生的 Enlightenment 程序太少(目前看来只有一个 Terminology 虚拟终端),大部分程序是 GTK/QT 的。如果只有桌面和设置中心好看,而大部分程序却非常违和,如何称得上是舒服的用户体验?

5. 最后一根稻草—— Linux 桌面生态

Linux 虽然以多样性著称,桌面环境五花八门,但实际上这么多年来已经形成了两大生态圈—— GNOME(GTK) 和 KDE(QT) 。绝大部分的桌面程序都是用 GTK/QT 开发的,并且依赖 GNOME/KDE 的某些功能和 API 。举几个你也许很难想到的例子: svn 的记录密码功能依赖 gnome-keyring 或者 kwallet , Network Manager 也同样需要 gnome-keyring 以及 polkit ,自动挂载以及在文件管理器里直接浏览 ftp sshfs smb 之类的地方则需要 gvfs ……而 gnome-keyring 如果不使用 GDM 的话,配置非常复杂,需要折腾 pam 以及一堆环境设置,我最终还是放弃了。

另一方面, E17 默认是和 connman 整合的,但 NetworkManager 却早已成了 Linux 桌面事实上的标准, Firefox 会使用 NM 的 API 来判断是否在线以及连接哪个 WIFI (以获取位置信息); E17 的混音器是直接控制 alsa 的,但现在使用 pulseaudio 早已成为了主流……如此种种,可以看到使用 E17 将会遇到的诸多不便。面对轻便和众多麻烦的选择,我想只有极少数人能够为了轻便而忍受这么多的麻烦。

最终,我在折腾了一个礼拜后发现,我到头来几乎又装上了 GNOME 的各种组件并且在竭力将环境配置为 GNOME 兼容。我发现这样的行为实在太不划算,因此还是把 E17 卸载,换成了 GNOME3 的一个 fork —— Cinnamon 。目前感觉良好,修复了 GNOME3 的很多 regression ,相当顺手。有兴趣的可以直接下一个 Linux Mint 的 LiveCD 先体验一下。