天天看點

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計劃的正式桌面。 

Linux桌面“彩”起來:桌面環境及視窗管理器大盤點
        KDE,K桌面環境(K Desktop Environment)的縮寫。一種著名的運作于Linux、Unix以及FreeBSD等作業系統上面自由圖形工作環境,整個系統采用的都是TrollTech公司所開發的Qt程式庫。KDE和Gnome都是Linux作業系統上最流行的桌面環境系統。 
Linux桌面“彩”起來:桌面環境及視窗管理器大盤點

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

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

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

        Openbox項目是一套完全遵循标準的快速、輕型、可擴充性強的視窗管理器。Openbox 3系列是一套全新的視窗管理器,沒有繼承以前任何一款同類軟體的代碼,盡管外觀上還是很像Blackbox(Openbox 2系列的代碼是基于Blackbox 0.65.0)。Openbox可以作為一個獨立的運作環境,同時也可以僅僅作為視窗管理器來替代像KDE、Gnome等桌面環境的預設視窗管理器。 

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

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

        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界面的優點,增加了很多有用的特征。 

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

        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占有很少的系統資源。 

Linux桌面“彩”起來:桌面環境及視窗管理器大盤點
        Sawfish是一個基于Lisp腳本語言開發的可擴充視窗管理器,它并不是構架在twm之上,整個采用了全新的體系結構。使用者可以通過修改個人配置檔案.sawfishrc中的Lisp代碼,或者通過整合的使用者定制系統來修改使用者配置資訊、更改元件和控制使用者界面。

超輕量級視窗管理器:dwm

作者:vpsee

如果把 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 運作的界面如下:

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

平鋪式視窗管理器——Awesome

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

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

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

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

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

而在Tiling window manager 中,無論有多少個視窗,都會把螢幕占滿,見圖2:

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

它的視窗沒有标題欄(标題在狀态欄上),邊框盡可能的窄(可再設定為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。這東東真不賴。

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

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

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

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

  • 配置 簡單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 同上
上一篇: Python 史話
下一篇: RPM包管理器

繼續閱讀