體驗(yàn)帶有GNOME 3的Fedora 15
現(xiàn)在Ubuntu有個(gè)趨勢(shì),就是兩年一個(gè)的LTS版本品質(zhì)才算可以,而其他六個(gè)月一次的版本,有點(diǎn)把用戶當(dāng)小白鼠——之前我總說Fedora新特性引入之快以至于把用戶當(dāng)小白鼠,現(xiàn)在Ubuntu已經(jīng)趕超了。
OK,實(shí)際上沒這么夸張啦,無論如何Ubuntu 11.04還保留了GNOME經(jīng)典桌面。這篇文章,我主要想寫一下這兩天體驗(yàn)GNOME 3@Fedora 15的感受。
我在MacBook Air上單獨(dú)分了一個(gè)區(qū)安裝了Fedora 15正式版,加了RPM Fusion的源,裝好了nVIDIA顯卡、Boardcom無線驅(qū)動(dòng),很快就配置好了一個(gè)可以投入使用的環(huán)境。與Ubuntu 11.04不同的是:
●Fedora需要加源才能安裝這些私有驅(qū)動(dòng),而Ubuntu默認(rèn)便可以使用自帶的工具安裝;
●同樣是2.6.38內(nèi)核,F(xiàn)edora不能使MBA揚(yáng)聲器發(fā)聲,而Ubuntu可以;
●同樣是2.6.38內(nèi)核,F(xiàn)edora很穩(wěn)定,而Ubuntu會(huì)死機(jī);
然后就體驗(yàn)了GNOME 3桌面,總體來看正式版的可用性還是比較好的,運(yùn)行很穩(wěn)定,也沒有什么明顯的Bug。要說的話,GNOME把“關(guān)機(jī)菜單”隱藏起來取而代之是“掛起”這簡直是一個(gè)反用戶的舉動(dòng)!
另外,正式發(fā)布兩個(gè)月之后的GNOME 3的周邊資源已經(jīng)相當(dāng)豐富了,有一大堆設(shè)計(jì)師設(shè)計(jì)的桌面主題都非常的漂亮,另外也有不少有用的擴(kuò)展被開發(fā)出來,充分發(fā)揮了GNOME 3的定制能力。
如下圖,是Elementary的GNOME Shell主題,你還能看出來我加了什么擴(kuò)展嗎?
作為一個(gè)開發(fā)者,我理所當(dāng)然地也要玩玩GNOME Shell的擴(kuò)展開發(fā)。目前官方并沒有文檔(自由軟件項(xiàng)目一直缺的都是文檔、文檔和文檔!),于是我參考其他源碼和這兩篇教程,把我的“VPN Indicator”移值到了GNOME Shell里。
More GNOME Shell Customisation
如圖所示(除UI部分外,其余還未完工):
總體來說,寫GNOME Shell的擴(kuò)展還是比較輕松和愉快的,只要你懂JavaScript,知道什么是prototype,再加些類GObject API的使用經(jīng)驗(yàn),就可以開工了。
簡單解說下我目前擴(kuò)展所做的工作吧(源代碼在此:https://github.com/tualatrix/vpn-indicator/tree/master/gnome-shell)
●首先構(gòu)建“/etc/openvpn/”這個(gè)目錄的GFile對(duì)象,然后調(diào)用“enumerate_children”方法遍歷其子文件(我嘗試用GLib的glob,但是失敗了)
●通過JavaScript正式表達(dá)式匹配后綴為“.ovpn”的配置文件,生成如上圖所示的“PopMenu”
●調(diào)用GFileType的“get_symlink_target”方法取得當(dāng)前配置的真實(shí)路徑,然后就可以使用PopMenuItem的setShowDot方法來指示當(dāng)前使用的配置了
●最上面是一個(gè)PopupSwitchMenuItem對(duì)象,計(jì)劃是它在Toggle的時(shí)候再去調(diào)用DBus方法以控制VPN的開關(guān),但是目前無法取得DBus(SystemBus)返回的數(shù)據(jù),于是得不到狀態(tài)
總體來說,GNOME Shell提供的一些UI庫,如StIcon、PopMenu、PopMenuItem和PopMenuSwitchItem等還是很豐富的,這些都可以用CSS來控制樣式,其次再利用GLib、Gio等庫,可以完成任何有關(guān)本地、網(wǎng)絡(luò)和進(jìn)程間通訊等桌面應(yīng)用程序常用到的任務(wù),只要有什么想法一般都是可以實(shí)現(xiàn)的。
但目前GNOME Shell還有嚴(yán)重的問題——它的擴(kuò)展機(jī)制僅僅是擴(kuò)展自身,而不關(guān)心第三方應(yīng)用程序與它的集成度,于是比較悲劇的是,連iBus輸入法暫時(shí)都用的是舊的StatusIcon。
這方面Ubuntu就做的好多了,AppIndicator、Unity就設(shè)計(jì)了比較好的API供第三方應(yīng)用程序使用,并且已經(jīng)有大量第三方應(yīng)用程序開始采用。
GNOME Shell、Unity,兩者應(yīng)該取長補(bǔ)短,這會(huì)是最好的。讓我真的在這兩者中選擇一個(gè),我還真選不出來。目前的總結(jié)是:
●GNOME Shell:簡潔、一致、穩(wěn)定、擴(kuò)展能力強(qiáng)
●Unity:不夠穩(wěn)定、Bug多、很多不一致、第三方應(yīng)用集成性好、性能相對(duì)好一些
到了Ubuntu 11.10,它將同時(shí)搭載GNOME Shell和Unity,到時(shí)用戶會(huì)選哪個(gè)呢?我又會(huì)用哪個(gè)?到時(shí)再看著辦吧!
原文:http://imtx.me/archives/1638.html
【編輯推薦】