Linux桌面“彩”起來:桌面環境及窗口管理器大盤點

  看到這個標題,很多人一定認爲桌面環境和窗口管理器是一回事,但嚴格來說窗口管理器和桌面環境是有區別的。桌面環境(Desktop Environments)是最近發展起來的桌面圖形環境,它的主要目標是爲Linux/Unix操作系統提供一個更加完善的界面以及大量各類整合工具和應用程序,其簡單易用性吸引着大量的新用戶,Linux世界最常見的桌面環境就是GNOME和KDE。窗口管理器(Window Manager)是一個可以控制X窗口環境中窗口屬性的軟件。簡單地說窗口管理器管理窗口的外觀形式、桌面菜單、圖標、虛擬桌面以及按鈕樣式等一切顯示在屏幕上的樣式。如果非要用一個詞來包括它們,就用“圖形環境”吧。 


        說到最出彩的桌面環境,肯定是 GNOME 和Kde兩個了。 

        GNOME 即GNU網絡對象模型環境 (The GNU Network Object Model Environment),GNU計劃的一部分,開放源碼運動的一個重要組成部分。 是一種讓使用者容易操作和設定電腦環境的工具。目標是基於自由軟件,爲Unix或者類Unix操作系統構造一個功能完善、操作簡單以及界面友好的桌面環境,他是GNU計劃的正式桌面。 

 

        KDE,K桌面環境(K Desktop Environment)的縮寫。一種著名的運行於Linux、Unix以及FreeBSD等操作系統上面自由圖形工作環境,整個系統採用的都是TrollTech公司所開發的Qt程序庫。KDE和Gnome都是Linux操作系統上最流行的桌面環境系統。 

 

        再說說其他圖形環境,Xfce是一個運行在各類Unix下的輕量級桌面環境,暫且提它一提,它類似於商業圖形環境CDE。它的作者是Olivier Fourdan。兩年以前,Olivier Fourdan試圖尋找一個快速、友好、高效的Linux桌面,於是XFce就這樣誕生了。XFce最先是基於 XForms三維圖形庫,隨後又開發了一些後續版本。去年Olivier Fourdan將其工作轉移到GNOME的核心工具GTK+上。XFce最主要的特色是容易配置,整個過程都可以使用鼠標來完成,而不需要修改配置文件的代碼。最新版本的XFce還支持鼠標拖放、系統任務管理、多字節在內的多國語言以及其它特徵。 

        Fluxbox是一個基於GNU/Linux的輕量級圖形操作界面,它雖然沒有GNOME和KDE那樣精美,但由於它的運行對系統資源和配置要求極低,所以它被安裝到很多較舊的或是對性能要求較高的機器上,其菜單和相關配置被保存於用戶根目錄下的.fluxbox目錄裏,這樣使得它的配置極爲便利。 

 

        Openbox項目是一套完全遵循標準的快速、輕型、可擴展性強的窗口管理器。Openbox 3系列是一套全新的窗口管理器,沒有繼承以前任何一款同類軟件的代碼,儘管外觀上還是很像Blackbox(Openbox 2系列的代碼是基於Blackbox 0.65.0)。Openbox可以作爲一個獨立的運行環境,同時也可以僅僅作爲窗口管理器來替代像KDE、Gnome等桌面環境的默認窗口管理器。 

        IceWM是一個超小型的輕量級窗口管理器,其主要特點是小和高速,設計之初就考慮了速度、可用性和與系統結合的穩定性;並且也不失靈活配置的特點。  優點:  1、體積小(安裝文件僅僅1M多,佔用空間6M左右)  2、啓動快,原始界面類似windows(win95)  缺點:  1、界面單一,對於喜歡華麗界面的使用者來說,沒有必要使用(但是最近發佈的幾個版本已經大爲改觀了,配合xloadimage、rox-filer等軟件還可以美化到媲美Gnome桌面的水平)。  2、大部分應用程序必須依賴於Gnome或者是KDE桌面的庫文件。 

 

        再說說FVWM,並不是任何人都會喜歡 FVWM。使用 FVWM 顯然不像用 KDE,Gnome 的桌面那麼簡單,你需要自己對它進行配置。它是一個老牌的,長久不衰的窗口管理器,它永遠以一個忠實的 Xwindow 窗口管理器的方式工作。使用 FVWM,你可以學到很多有關 Xwindow 的東西,你會很快的明白 Xwindow 的工作原理,見識到 Xwindow 的強大和靈活。如果你喜歡隨意的控制自己窗口,讓它們都乖乖聽話,而不是老是跳出來擋在你面前。你喜歡隨意定製自己窗口樣式,喜歡快速高效的控制窗口,喜歡節省資源,…… 總之,你是一個挑剔的人。那麼 FVWM 就是你最終的選擇。 

 

        Enlightenment是一個功能強大的窗口管理器,它的目標是使用戶輕而易舉地配置所見即所得的桌面圖形界面。現在Enlightenment的界面已經相當豪華,它擁有像AfterStep一樣的可視化時鐘以及其它浮華的界面效果,用戶不僅可以任意選擇邊框和動感的聲音效果,最有吸引力的是由於它開放的設計思想,每一個用戶可以根據自己的愛好,任意地配置窗口的邊框、菜單以及屏幕上其它各個部分,而不需要接觸源代碼,也不需要編譯任何程序。

        Window Maker是一個計劃爲GNUStep應用軟件提供額外綜合支持的X11窗口管理器。它盡力模擬一流的NeXTSTEP圖形用戶界面,相對NeXTSTEP圖形用戶界面,Window Maker運行速度更快、擁有更多的功能以及易於配置和使用。 

        AfterStep是一個基於NEXT操作系統的NeXTSTEP而開發的窗口管理器,最初起源於由BoYang所創的BowMan窗口管理器,AfterStep開發者們由最初簡單的模仿到力圖改進、完善它的功能,決定改變BowMan的名稱,於是AfterStep計劃誕生了。AfterStep的界面和NEXTSTEP由很多相似之處,但是值得注意的是,AfterStep爲了滿足不同的用戶的需要,而做了大量的改進,NEXTSTEP的界面沒有給人一種非常舒適的感覺,所以AfterStep吸取了NEXTSTEP界面的優點,增加了很多有用的特徵。 

 

        mwm(Motif Window Manager)遵循OSF(Open Source Foundation,開放源代碼基金會)制定的Motif窗口管理標準,由於Motif採用OS/2操作系統的程序管理器作爲其模板,所以所有的窗口特性及快捷鍵都和OS/2和Windows完全相同。(OS/2本是由IBM和Microsoft共同研製開發的,但Microsoft中途退出了合作,自己搞出了Windows,但Windows裏的很多東西仍沿用了OS/2的思想)。Motif需要付費才能使用的,在許多商業Unix操作系統中已經提供了mwm。 

        Blackbox是一個用C++開發的新穎窗口管理器,它沒有共享其它窗口管理器的任何代碼,設置是圖片處理技術的實現都是重新開發的。和其它窗口管理器相比,Blackbox最主要的特色是代碼少,運行速度快,Blackbox所有的代碼都是由 Brad Hughes ([email protected]) 和Jeff Raven ([email protected])兩個人開發和維護。由於其緊湊的結構、精練的代碼使得Blackbox佔有很少的系統資源。 

 

        Sawfish是一個基於Lisp腳本語言開發的可擴展窗口管理器,它並不是構架在twm之上,整個採用了全新的體系結構。用戶可以通過修改個人配置文件.sawfishrc中的Lisp代碼,或者通過整合的用戶定製系統來修改用戶配置信息、更改組件和控制用戶界面。

 

 

        

超輕量級窗口管理器:dwm

如果把 X 窗口管理按照重量來劃分的話,GNOME/KDE 是兩大重量級桌面系統,XFCE 是中型桌面,FVWM, Fluxbox, Blackbox, IceWM 等可以看作輕量級的桌面/窗口管理器。更輕量級的窗口管理器就要數 dwm, xmonad, awesome, ratpoison 等了,這類管理器也叫做平鋪窗口管理器(Tiling window manager),它們的特點是:佔用資源很少,可以完全的鍵盤控制,窗口布局一般不疊加並且能平鋪整個屏幕、不浪費屏幕像素儘量增加可視範圍等,非常適合服務器或者資源有限的機器使用。VPSee 就在一臺古董級 Thinkpad上使用 DWM,一個工作區可以平鋪6個窗口用來監視6個 Linksys WRT54GL 無線路由器的連接狀況。

因爲大部分的工作和時間都鎖定在 terminal, vim, firefox,mutt,沒有理由爲了這4個工具就安裝幾百兆臃腫的桌面環境,一個輕量的桌面環境能讓我更好的把注意力集中在工作上。dwm 就是一款我需要的平鋪窗口管理器,用 C 語言寫的,全部代碼不到2000行,不需要依賴其他庫就可以編譯,與其他幾款平鋪窗口管理器不同的是它沒有可配置文件供修改,要修改它的配置只能通過修改它的源代碼,也就是說每次都需要通過修改 dwm 的源代碼(其實就是一個頭文件而已,config.def.h)、編譯然後安裝來配置 dwm. 也有一些平鋪窗口管理器是從 dwm 分出來的,比如 awesome, xmonad 等。LinuxToy 介紹了平鋪式窗口管理器:awesome 和另一個平鋪式窗口管理器:ion,感興趣的話可以比較一下。

使用技巧

啓動 terminal:Shift+Alt+Enter
啓動 dmenu:Alt+p
移動一個窗口到另一個 tag:Shift+Alt+2
轉移到另一個 tag:Alt+2
關閉一個窗口:Shift+Alt+c
移動和重設窗口大小:Alt+mouse button
退出 dwm:Shift+Alt+q

dwm 運行的界面如下:

dwm

 

 

平鋪式窗口管理器——Awesome

首先科普一下 Tiling window manager,直譯就是“瓦片式窗口管理器”;意譯爲“平鋪式窗口管理器”。

假設你需要同時監視多個程序的狀態並進行操作(這種情況非常之普遍),你就需要不停的按Alt+Tab切換,但是這會加速Alt尤其是Tab的磨損(手的磨損忽略了,因爲它是可再生的)。

聰明的人就會想出這一招,見圖1:

awesome1-thumb.jpg

但是要先調整窗口布局,而且總是不太合適,有點縫隙啥的,分散注意力。

而在Tiling window manager 中,無論有多少個窗口,都會把屏幕佔滿,見圖2:

awesome2-thumb.jpg

它的窗口沒有標題欄(標題在狀態欄上),邊框儘可能的窄(可再設置爲0),以最大程度的節約桌面空間。

awesome還有超低的資源佔用率。

完全的鍵盤控制(在普通的窗口管理器中,完全鍵盤控制是不現實的,因爲調整窗口位置無論如何要用鼠標。而Tiling WM中則不需要調整窗口位置)

首先把修飾鍵設置爲WIN鍵,這樣不會和其它的快捷鍵衝突。附件裏有配置文件,可以直接使用。

  • WIN+數字鍵 切換工作區
  • WIN+Space 切換窗口布局比如水平佈局下,新開窗口與原窗口水平分割桌面。

     

    佈局有下面幾種:

    • 水平佈局與垂直佈局各兩種,區別在於新開窗口的位置。它們是最常用的佈局
    • 全屏佈局。這個不實用,可以用WIN+m最大化/還原當前窗口
    • 螺旋佈局。似乎也不太實用,反正我很少用
    • 逐漸減小布局。和上面的那個差不多
    • 浮動佈局。類似傳統窗口管理器的佈局
    對於不規則的窗口,像Gimp、mplayer等,無論在任何佈局下窗口都是浮動的。可以在配置文件裏設定哪些程序使用浮動窗口。調整浮動窗口的位置時,按下WIN鍵,用鼠標拖動就可以了。
  • WIN+ENTER 開啓預設的終端
  • WIN+SHIFT+C 關閉當前窗口
  • WIN+SHIFT+數字鍵 把當前窗口發送到其它工作區
  • WIN+j WIN+k 切換到其它窗口
  • WIN+h WIN+l 調整當前窗口大小這一組快捷鍵是VI風格的。
  • WIN+F2 運行程序
默認的不好用,我安裝了一個dmenu。這東東真不賴。

 

awesome3-thumb.jpg

看圖 4 頂部的狀態欄就是dmenu的菜單 根據你的輸入動態的顯示匹配選項 用方向鍵進行選項

awesome4-thumb.jpg

對於窗口管理器的選擇,我們需要考慮的無非以下幾點:

  • 配置 簡單OR複雜
  • 功能 強大OR實用
  • 視覺 華麗OR樸素
下面我們以辯證唯物馬克思列寧毛爺爺主義的思想來分析一下:
  • 配置除了FVWM這種矯揉造作的WM,配置起來嚴重麻煩;其它WM的配置方式雖然不同,但是配置的難度基本在同一量級。
  • 功能這一方面,我想大多數人被忽悠了。別家有的功能,咱一定要有;別家沒有的功能……那就是賣點。這種無序競爭導致了WM中的大部分功能用戶根本用不到,卻佔用了很多的系統資源。所以FVWM的賣點就來了——自由配置,想要什麼功能自己加,用不着的功能嘛……除非有病,不然誰費老鼻子的力氣配置自己根本不需要的功能。
  • 華麗的視覺效果養眼,不過效果不好。我用過一段時間的compiz,視力並沒有好轉。向別人炫耀,尤其是對華麗敏感的別人,比如說MM。佔用更多的系統資源。
——下面是我的結論,雖然看起來和上面的論述沒什麼邏輯關係——

 

在長期使用的情況下,配置和視覺效果是可以忽略的,而最重要的是功能。那我們需要什麼樣的功能呢?大家應該注意到了:

  • 重量級窗口管理器,如metacity(GNOME)、Kwin(KDE)等,它們的功能五花八門,差別也很大
  • 而羽量級窗口管理,如Fluxbox、IceWM等等等等,它們的功能都差不多
爲什麼會這樣?

 

上面說了,以功能強大爲賣點的WM,它們之間比拼的是功能多少,所以功能多多益善。而以短小精悍爲賣點的WM,則是越苗條越好,這是一種尋底競爭,最終結果就是保留最少的有用功能。而真正有用的功能,也就那麼幾個,沒啥不一樣的。

羽量級窗口管理都有什麼功能呢?

  • 調整窗口位置,層次…… Tiling WM中的方式更有效率
  • 桌面背景 Tiling WM中不需要
  • 開始菜單、右鍵菜單 Tiling WM中不需要
  • 鍵盤控制 Tiling WM中被強化
  • 工作區
  • 狀態欄
  • 運行對話框 Tiling WM中被強化
  • 啓動終端快捷鍵
所以,最終的結論就是,Tiling WM是高手、準高手、半高手、僞高手的最佳選擇。

 

另:我花了很長時間,差不多把能找到的Tiling WM試遍了。把它們的特點/缺點彙報一下:

  • DWM 窗口布局較少,標題欄中文亂碼(不過有中文補丁可以解決這個問題),使用鼠標操作窗口極易造成混亂
  • WMII 調整窗口大小要用鼠標,每個窗口頂部有微型標題欄,標題欄亂碼
上面兩個WM和dmenu配合最完美。

 

以下是第一時間刪除的,還有一些記不起名字了:

  • xmonad 要安裝體積超大的Haskell
  • ION3 標題欄中文,風格不喜歡,窗口間有縫
  • larswm 同上

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章