编程 Android wordpress 云计算 php 开源 nginx Firefox java Windows centos 微软 mysql Python 程序员 linux Ubuntu google shell apache

親手打造自己的 Linux 桌面環境

Linux 的最大好處是什麽?安全性、穩定性、高性能,還是它帶來的自由?它在所有這些方面都表現不賴,但是我們想著重強調的另一個特點是其模塊性。作為一款深受 Unix 影響的操作系統,GNU/Linux 被設計成容易拆開來,又容易裝回去——如果一切順利的話。系統的各個主要組件都是用小組件起來的,這些小組件可以忽略或更換,這就是為什麽我們會有如此多不同的 Linux 發行版的原因之一。

當然,這種模塊性有時增添了復雜性。不過它也增添了可靠性,因為各組件被設計成可以獨自運行;如果某個組件崩潰或遇到了某種軟件錯誤,其余組件在理想情況下會繼續正常運行。所以,你可以用另一個外殼來代替 Bash,或者改用一個替代的 SSL 庫,或者甚至更換整個初始化系統――我們從主流發行版遷移到 Systemd 見到了這一幕。

但是桌面環境方面又如何呢?KDE、Gnome 和 Xfce 不都是大型的整體式項目嗎?實則不然。它們是由彼此高度依賴的較小的程序和庫組建起來的,但是可以去掉某些組件,或者把它們換成其他組件。如果更進一步,還可以完全從頭開始構建一個桌面環境,你只要精心挑選幾個特定的程序,把它們連接起來,然後確保它們可以同時運行。

從頭開始構建一個桌面環境其實相當好玩,也是一次很好的學習過程,所以我們在下面就介紹這方面。你可以選擇適合自身工作流程的組件,最終結果就是,比像 Gnome 和 KDE 這些“重量級”桌面環境輕盈得多、快速得多。另外,你在參加下一次 Linux 用戶組會議時可以向朋友吹噓,你才不用那些普通的預裝的桌面環境,而是構建了自己的定制桌面,顯擺一下你在 Linux 這條路上比別人走得更遠。

親手打造自己的 Linux 桌面環境 
下面是我們將要使用Openbox、PCManFM和Docky創建的定制桌面,但是可以把所有組件完成其他的東西!

一、桌面環境是什麽?
啟動你的常規桌面,看一下:上面可能有面板、通知區、窗口標題欄以及其他界面元素。這些都是桌面環境所提供的,但是如果我們更深入地探究一下,還會找到其他功能。桌面環境還處理實現應用程序之間切換和關閉應用程序等操作的鍵盤快捷方式,另外還處理桌面墻紙、小應用程序(比如處理器監視工具)和花哨的窗口效果。

現在,這些特性並不是由單單一個程序提供的,而是由一批程序提供的。比如在 Xfce 中,在終端中運行ps ax | grep xfce會顯示名稱中有 xfce 的所有進程,這樣的進程有好多個。大多數名稱顯而易見,所以你可能明白,xfce4-panel 提供了位於屏幕邊緣的面板,而 xfce4-power-manager 監視你的電池電量,處理電源事件(比如合上蓋子)。

Gnome 和 KDE 的工作方式幾乎如出一轍。你會忍不住想使用來自各種桌面的每個組件,然後組合起來,以此構建某種極其出色的混合桌面,但是最終結果實際上不是那麽理想。如上所述,每個桌面環境下的程序旨在協同工作,具體來說是在那些桌面環境下工作,所以如果你使用來自 KDE 的面板、來自 Xfce 的電源管理器,以及來自 Gnome 的窗口管理器,最後得到的將是一種大雜燴式的桌面,耗用大量內存。畢竟,你要裝載來自每個桌面環境的庫及其他進程,所以這就好比同時在運行這三個桌面環境。

我們可不想這樣。我們要做的是,選擇小巧的、占用內存少的獨立式組件,它們不依賴其他東西,但是可以順利地協同運行。如往常一樣,在自由軟件領域有一大堆組件可供選擇,所以不妨看一下主要的組件。

二、選擇窗口管理器
盡管我們要使用單個的獨立式程序來打造定制的桌面環境,但是 X Windows System(桌面的基本圖形層)裏面還是有一些標準,可以確保它們能夠順利地協同運行。首先,不妨看一看窗口管理器方面的幾個選擇。

1.名稱:Openbox

網址: http://www.openbox.org 

Openbox 被設計成小巧、快速,大概是最出色的全面的獨立式窗口管理器。完全可以單獨使用它,但通常與其他工具結合使用。拿 LXDE 來說:這是一種使用 Openbox 來管理窗口的輕量級桌面環境,也是流行的 Lubuntu 發行版的桌面。Openbox 還是現已銷聲匿跡的 CrunchBang 發行版(但憑借 CrunchBang++ 迎來了新生)和 ArchBabg 的默認窗口管理器。

甚至可以在 Gnome 或 KDE 裏面使用 Openbox,更換其原生窗口管理器。Openbox 出現在幾乎各大發行版的軟件庫中,可以用“crunchbang”命令從腳本來啟動(後文會有介紹)。

2.名稱:i3

網址: http://i3wm.org 

Openbox 是一種傳統的鼠標操作的窗口管理器,相比之下,i3 完全離不開鍵盤快捷方式。這讓用戶一開始有點難以掌握,因為你得花點時間閱讀說明文檔,才能適應它。不過一旦你記住了鍵盤快捷方式,就會愛不釋手。i3 在想要經常使用鍵盤、而不是操作鼠標的編程人員當中特別受歡迎。

另外,i3 是一種平鋪式窗口管理器。不像傳統的窗口管理器:窗口散布於屏幕四周,一些窗口覆蓋在另一些窗口上,在 i3 中,你可以將窗口組織整理成屏幕上不同大小的圖塊(區域)。所以在寬屏顯示器上,你可以讓火狐占用屏幕左邊50%的區域,兩個終端窗口占用右邊的上下兩部分。如果你有一塊大屏幕,會發覺平鋪式方法的效果確實很好。

3.名稱:Awesome

網址: http://awesome.naquadah.org 

Awesome 是另一種設計時就想到鍵盤使用的輕量級窗口管理器。它還旨在與各種 X 標準兼容,可通過 Lua 腳本語言來進行擴展。其開發人員稱之為“框架窗口管理器”――換句話說,你可以在此基礎上,使用 Lua 定制及其他附件,定制一個功能更強大的窗口管理器。

4.名稱:JWM

網址: http://www.joewing.net/projects/jwm/ 

JWM 是用普通 C 編寫而成的,使用基本的 X 庫,所以它的依賴項非常少,很容易編譯。它旨在最大限度地利用內存有限的舊計算機,但是如果你就想挑戰一下自己,它是個不錯的選擇。JWM 含有自己的簡單面板,但是你可能想要更易配置、外觀更漂亮的面板,稍後我們會探討。

好了,以上就是市面上幾個最出色的窗口管理器。不過還有更多的窗口管理器值得探究,如往常一樣,Arch Linux 的維基是個很好的資源,值得一讀。

三、面板、文件管理器和額外組件
一旦你選擇好了窗口管理器,就需要為它添加一些額外組件來美化,比如漂亮的面板(用於啟動和管理程序),以及文件管理器。如果你是個經驗豐富的 Linux 用戶,可能很高興在終端上處理所有的文件工作,但是我們還是會介紹幾個選擇。

1.名稱:Cairo-Dock

網址: http://glx-dock.org 

Cairo-Dock 提供的面板在外觀上酷似 Mac OS X 的停靠欄――至少,在10.10(Yosemite)采用扁平化設計之前是這樣。它的“3D平面”模式看起來很眩,光滑的圖標駐留在玻璃托盤上;你將鼠標移到圖標上後,它們的大小會稍稍變大。右擊圖標,就可以定制圖標,或者選擇總會出現的 Cairo-Dock 子菜單,該子菜單讓你可以配置整個面板。默認情況下,Cairo-Dock 顯示了最流行的 FOSS 程序(假設你已安裝)的對應圖標,比如火狐和雷鳥等程序。

如果你要在虛擬機中測試定制桌面,請註意:首次啟動後,Cairo-Dock 會詢問你是否想使用 OpenGL。這在物理硬件上很有用,讓停靠欄的效果顯得更流暢,但是在 VirtualBox 裏面,它會帶來問題,所以這種情況下最好還是讓它處於被禁用的狀態。

延伸阅读

评论