GNOME 3使用及扩展开发的一点感受

标签: gnome 扩展 开发 | 发表时间:2011-05-29 22:49 | 作者:(author unknown) 本
出处:http://imtx.me/

那天我写完《细数Unity的好与坏(三):Bugs and Dirty Hacks!》之后,就再也没有动力写第四篇了。主要还是发现了“坏”的比“好”的多,特别是当我以纯用户的角度去使用时,发现可用性实在是不太好(尤其是中文用户)。

这篇文章《Canonical and Ubuntu Needs to Settle Down》讲出了我的心理话。现在Ubuntu有个趋势,就是两年一个的LTS版本品质才算可以,而其他六个月一次的版本,有点把用户当小白鼠——之前我总说Fedora新特性引入之快以至于把用户当小白鼠,现在Ubuntu已经赶超了,XD

OK,实际上没这么夸张啦,无论如何Ubuntu 11.04还保留了GNOME经典桌面。这篇文章,我主要想写一下这两天体验GNOME 3@Fedora 15的感受。

我在MacBook Air上单独分了一个区安装了Fedora 15正式版,加了RPM Fusion的源,装好了nVIDIA显卡、Boardcom无线驱动,很快就配置好了一个可以投入使用的环境。与Ubuntu 11.04不同的是:

  • Fedora需要加源才能安装这些私有驱动,而Ubuntu默认便可以使用自带的工具安装;
  • 同样是2.6.38内核,Fedora不能使MBA扬声器发声,而Ubuntu可以;
  • 同样是2.6.38内核,Fedora很稳定,而Ubuntu会死机;

然后就体验了GNOME 3桌面,总体来看正式版的可用性还是比较好的,运行很稳定,也没有什么明显的Bug。要说的话,GNOME把“关机菜单”隐藏起来取而代之是“挂起”这简直是一个反用户的举动!

另外,正式发布两个月之后的GNOME 3的周边资源已经相当丰富了,有一大堆设计师设计的桌面主题都非常的漂亮,另外也有不少有用的扩展被开发出来,充分发挥了GNOME 3的定制能力。

如下图,是Elementary的GNOME Shell主题,你还能看出来我加了什么扩展吗?

GNOME 3 Fedora 15

作为一个开发者,我理所当然地也要玩玩GNOME Shell的扩展开发。目前官方并没有文档(自由软件项目一直缺的都是文档、文档和文档!),于是我参考其他源码和这两篇教程,把我的“VPN Indicator”移值到了GNOME Shell里。

如图所示(除UI部分外,其余还未完工):

VPN Indicator for GNOME 3

总体来说,写GNOME Shell的扩展还是比较轻松和愉快的,只要你懂JavaScript,知道什么是prototype,再加些类GObject API的使用经验,就可以开工了。

简单解说下我目前扩展所做的工作吧(源代码在此:https://github.com/tualatrix/vpn-indicator/tree/master/gnome-shell

  • 首先构建“/etc/openvpn/”这个目录的GFile对象,然后调用“enumerate_children”方法遍历其子文件(我尝试用GLib的glob,但是失败了)
  • 通过JavaScript正式表达式匹配后缀为“.ovpn”的配置文件,生成如上图所示的“PopMenu”
  • 调用GFileType的“get_symlink_target”方法取得当前配置的真实路径,然后就可以使用PopMenuItem的setShowDot方法来指示当前使用的配置了
  • 最上面是一个PopupSwitchMenuItem对象,计划是它在Toggle的时候再去调用DBus方法以控制VPN的开关,但是目前无法取得DBus(SystemBus)返回的数据,于是得不到状态

总体来说,GNOME Shell提供的一些UI库,如StIcon、PopMenu、PopMenuItem和PopMenuSwitchItem等还是很丰富的,这些都可以用CSS来控制样式,其次再利用GLib、Gio等库,可以完成任何有关本地、网络和进程间通讯等桌面应用程序常用到的任务,只要有什么想法一般都是可以实现的。

但目前GNOME Shell还有严重的问题——它的扩展机制仅仅是扩展自身,而不关心第三方应用程序与它的集成度,于是比较悲剧的是,连iBus输入法暂时都用的是旧的StatusIcon。

这方面Ubuntu就做的好多了,AppIndicator、Unity就设计了比较好的API供第三方应用程序使用,并且已经有大量第三方应用程序开始采用。

GNOME Shell、Unity,两者应该取长补短,这会是最好的。让我真的在这两者中选择一个,我还真选不出来。目前的总结是:

  • GNOME Shell:简洁、一致、稳定、扩展能力强
  • Unity:不够稳定、Bug多、很多不一致、第三方应用集成性好、性能相对好一些

到了Ubuntu 11.10,它将同时搭载GNOME Shell和Unity,到时用户会选哪个呢?我又会用哪个?到时再看着办吧!

相关 [gnome 扩展 开发] 推荐:

GNOME 3使用及扩展开发的一点感受

- 本 - Linux桌面中文网
那天我写完《细数Unity的好与坏(三):Bugs and Dirty Hacks. 》之后,就再也没有动力写第四篇了. 主要还是发现了“坏”的比“好”的多,特别是当我以纯用户的角度去使用时,发现可用性实在是不太好(尤其是中文用户). 这篇文章《Canonical and Ubuntu Needs to Settle Down》讲出了我的心理话.

ibus的GNOME Shell扩展

- 小汐 - 画猫不成反类虎
更新代码,支持横排模式(设置后需要重启gnome shell). 这个扩展使用了ibus的一些新API,该API还没有发布,需要自行编译ibus的git仓库代码. 以前说过GNOME3的一个缺点,在通知栏聊天时,无法看到ibus的候选词界面,确切地说是候选词界面被通知栏聊天界面挡住了. 这是GNOME Shell的架构所决定的,目前没有方法可以绕过(除非修改GNOME Shell)本身.

新增“GNOME Shell扩展/提示器”列表

- zyhong17 - 笨兔兔
提示:下面介绍的GNOME Shell 扩展,如果已经添加webupd8 GNOME3 PPA的,就不必再次添加,直接执行安装命令即可. #1,GPaste:剪贴板管理工具. GPaste 是一款剪贴板管理工具,不支持图片、文件,只支持文本格式. 安装完成后,重启GNOME Shell,通过GNOME Tweak tool激活GPaste扩展即可.

GNOME 3 发布

- Ivan - cnBeta.COM
GNOME桌面环境的最新版本GNOME 3终于发布啦. GNOME 3与 GNOME 2相比,界面更加漂亮. 经过重新思考、编码,简洁大方,更加适合工作. 虽然GNOME 3发生很多的变化,但GNOME 2的应用仍然可以流畅的在GNOME 3环境下工作.

GNOME 3.2发布

- 个人 - Solidot
GNOME桌面环境发布了GNOME 3的第一个重大更新版本. 主要的新特性包括:开发者据用户的反馈,修改了界面和设置,以提供更平滑的体验;新的登录界面;新的联系人和文档应用,在线帐号管理;文件管理器支持文件快速预览;改进了工具库 GLib;GTK+ 3.2;Clutter 1.8 ;等等. GNOME 3.4将在2012年4月推出.

GNOME Shell 3.2 预览

- timebug - LinuxTOY
近日 Allan 在他的博客上分享了最近在 GNOME Shell 3.2 上的开发进度. 整合聊天和消息程序(由 Guillaume Desmottes 开发). 登陆系统时自动登陆聊天服务,不再需要额外启动聊天程序. 直接在 Shell 即可语音通话,回复聊天邀请,文件传输. 通知计数器(由 Guillaume Desmottes 开发).

Chrome GNOME 3 主题

- robby - LinuxTOY
在 GNOME 3 环境下使用 Chrome/Chromium. 那么赶紧看看这款 Adwaita 风格的主题吧. 如图所示,在选项中设置使用系统边框后,Chrome/Chromium 在 GNOME 3 环境下成功还原了 Adwaita 风格,使用 GNOME 3 的铬粉们赶紧上吧. 消息来源:LinuxART.

Ubuntu11.10 GNOME Shell指南

- 个人 - 译言-每日精品译文推荐
Ubuntu 11.10终于提供了一种安全方便的方式去安装和使用“GNOME Shell”——GNOME的新桌面交互接口. 这意味着不像之前的版本那样,现在它不需要任何额外的插件,或者执行任何可疑的脚本它可以从Ubuntu软件中心直接安装,只需一次简单的点击. 为了在ubuntu上获得更好的体验我们需要安装一些额外的插件.

Linus Torvalds弃GNOME 3用Xfce

- Wick - Solidot
许多人都不喜欢变化太大的GNOME 3桌面,现在Linux kernel作者也加入到这一阵营之中. Linus Torvalds在他的Google+上表示,GNOME 3“无可容忍的凌乱”,它的用户体验是“无法接受的”. 因此他决定抛弃GNOME 3,改用Xfce. 他表示使用Xfce相当于退回到GNOME 2,但相比GNOME 3却是一大进步.

移植Google Calendar到 GNOME Shell

- 欧剃 - 笨兔兔
GNOME Shell Google Calendar 将Google 日历移植到了GNOME Shell上. python脚本可保存密码,自动获取新的谷歌日历事件. 但目前没有图形化的配置界面,导入日历. GNOME 3.2(+3.1.90.x) 目前通过“Online accounts”已经移植了谷歌日历,但是只能在上述版本中实现.