2008年2月3日 星期日

Linux Desktop Environment 的困境與展望

Standard
今年的願景之一,就是為 Linux 塑造一個好用又輕窕的 Desktop Environment,因此加入了 【 Lightweight X11 Desktop Environment 】的行列。而經過這半個月的努力,在一些基礎項目的部份,總算有些小小成果。當然,實作過程中發現了不少 Kernel/GTK+/Other-DE 所存在的困難和問題,詳細了解後更訝異其設計理念是如此 suck !

經過大致的觀察,整理歸納將會著手進行改善 Desktop Environment 的方向:

  1. DE 不單單只是 Console 的外衣。
  2. 由下而上的整合 Kernel 與 DE。
  3. 人性化 UI 以減少 text command 的使用機會。
  4. 一氣呵成的功能和操作流程。
  5. 減少合併過多且重覆的 service,並設計更具開放性、擴充性的控制通道以整合 DE。
  6. 沒有 Power User 只有 Normal User。

從使用者的角度來看,現今有的 DE 不過是將醜陋的 Kernel/Console 包裝起來,只是醜陋的觸角『從文字變成了圖形』。由於學習眾多圖形介面系統的優秀外貌,更將該外貌直接套嵌在 kernel 身上,出現了各種中看不中用的 applet、trayicon、GUI tools ;為了更進一步解決各種『效果』,又出現了 FreeDesktop.org specs、DBus、HAL 等規範。當然,最後一團亂的結果,得到了比 Windows XP 還要可怕的硬體需求度。

如今的 Linux Desktop Environment,彷彿只是為了不想輸給『M$ Windows』和『Apple Mac』,在一頭燒的情感衝突下的產物。各種因為不想輸所產生出來的東西,除了難用之外,更缺乏 performance ,導致各種『人性化設計』被仿造在 Linux DE 上後便淪為『人性化效果』。最常被提到的『FreeDesktop.org specs suck!』,就是為了達到各種『人性化效果』,強暴系統I/O 操作的最佳『血腥』案例。

以本人目前正在實作 netdaemon 時碰到的問題為例:這種網路監控 Icon 在 Windows 上其實是全套的,除了從下而上的顯示當時連線狀態之外,更搭配了自動修復連線等一系列動作。而在觀察 Linux 各家版本的同類實做之後,發現這一系列的工作被分工成 netplugd、NetworkManager、nm-Applet 等等許多 service,常常是『頭痛醫頭,腳痛醫腳』,光是一個網路監控就要跑成數個 Daemon,甚至功能還有重疊。

在人性化方面最令人頭痛的是,Linux 玩家對 console command 一個指令一個動作的情況都習以為常,DE 的設計者常常還真的做出相對應 console command 的各種選項功能,但總是未仔細思考過操作流程就一股惱丟給使用者,對本來在 console 下就如魚得水的人來說或許沒感覺,但對 Normal User 來說,這是極度『假人性』的舉動。

人們常說『梧鼠五技而窮』,當今 Linux Desktop Environment 會跑、會飛、會跳。但都跑不快、飛不遠、跳不高,針對各項人性化功能缺少一氣呵成的設計。希望在現在各大廠積極投入 Mini PC 的行列後,能多少為 Linux DE 帶來新的氣象!

除此之外,跳脫出現有大型 DE 的侷限,當前正在投入實作的專案 LxDE ,目標就是在低等級的電腦上也能順暢的執行,當然易用性和實用性也是不能少的,以下是無聊時為 LxDE 畫的桌布。



PCMan 認為 LxDE 跑在 EeePC 是一個不錯的選擇,但由於目前我們手邊都沒有機器可以實測,還需要有人能幫忙做測試。

最後小廣告一下,lxpanel - 『volumealsa plugin』 已經 commit 到 svn 了,如果有人在過去無法正常使用 volume plugin ,可以嘗試使用這新版的 volume control for ALSA。