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

jopen 9年前發布 | 28K 次閱讀 Linux

要是 KDE、Gnome 和 Xfce 都沒法讓你來勁,該怎么辦?當然是親手打造自己的桌面環境嘍!

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 里面,它會帶來問題,所以這種情況下最好還是讓它處于被禁用的狀態。

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

Cairo-Dock隨帶豐富的漂亮效果,非常酷似Mac OS X

2.名稱:Docky

網址: http://wiki.go-docky.com 

Docky 非常類似 Cairo-Dock,不過它使用 Mono,因此增添了一點額外開銷。但是它也非常完善和漂亮,能夠獲得上述類似 OS X 的 3D 外觀。Docky 出現在各大發行版中;安裝完畢后,只要在命令提示符下輸入“docky”,就可以啟動它。其默認配置相當簡單;你只會看到用來配置 docky 的錨圖標,以及運行中的程序圖標。不過,可以將這些圖標變成啟動器,只需右擊圖標,選擇將它們固定到停靠欄上。然后,即便程序沒有運行,它們也依然在那里。

有了 Docky,還可以添加額外組件,比如天氣小應用程序和電池監視工具――點擊錨圖標,即可調出配置框,然后選擇 Docklets 標簽即可顯示列表。選擇一個你喜歡的,然后點擊加號(+)按鈕,就可以將它添加到停靠欄的右邊。

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

3.名稱:PCManFM

網址: http://wiki.lxde.org/en/PCManFM 

文件管理器在 Linux 界多得可以抓一把隨便挑;大多數提供了很少的功能。PCManFM 用于 LXDE 桌面中,它是名氣最大的文件管理器之一:它比 Gnome 和 KDE 中所用的“重量級”文件管理器來得輕便,但是功能仍相當強勁,能夠處理你需要的 99% 的任務。它在設計方面也不想試圖過于標新立異,而是選擇了一種熟悉的布局,誰都可以迅速上手。另外,它幾乎無所不在,出現在各大發行版中。

4.名稱:XFE

網址: http://roland65.free.fr/xfe/ 

這與 Xfce 沒有半毛關系;它其實是一種非常輕巧的文件管理器,使用 FOX 圖形化工具包。開發人員稱之為“所有喜歡輕巧快速的 Unix 愛好者首選的文件管理器”;雖然與同樣占用很少資源的其他程序相比,XFE 并不提供許多功能特性,可是它有一個好處:仍在不斷開發之中。因而,它不難編譯,也很容易在主流的 Linux 發行版中找到。

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

XFE是一款結實又小巧的文件管理器,外觀并不特別出彩,但是很實用。

四、額外組件:合成器和背景......

可以使用主題,給我們剛才提到的一些窗口管理器(比如 Openbox)增添一點吸引力;但是如果你確實很想要大量的視覺效果,有必要添加一個合成管理器。這樣一來,窗口出現時,就能夠獲得陰影和微妙動畫之類的效果。最出色的一個合成管理器就是 Compton。它還非常易于使用:只要啟動你的窗口管理器,然后啟動 Compton,即可開始使用特效。

要考慮的另一個方面就是桌面墻紙。大多數輕量級窗口管理器并不直接提供添加桌面墻紙的方法,所以你需要找到另一個墻紙工具。這方面一個特別有用的工具就是 Feh,這個命令行驅動的圖像查看器還能設置“根窗口”root window圖像。沒錯,這是“根”在 Unix 用語中的另一種用法,另外的用法還有超級管理員用戶和文件系統頂層。用 X 術語來說,根窗口實際上就是背景,所以如果你為其應用一個圖像,就可以設置桌面墻紙。

五、把一切組件連接起來

好了,不妨開始做有意思的部分!我們現在要把這一堆組件變成一個完全實用的桌面環境。在這里,我們將使用 Openbox 作為窗口管理器、Docky 作為面板、PCManFM 作為文件管理器,然后添加 Compton 和 Feh,讓桌面環境看起來可愛、漂亮。

由于這些都是獨立的程序,我們需要創建一個腳本,讓它們都按正確的順序來運行。以根用戶身份,在 /usr/local/bin/mydesk下創建一個文件,比如:

sudo nano -w /usr/local/bin/mydesk

輸入下列內容,使用Ctrl+O組合鍵保存,然后按Ctrl+X組合鍵,退出Nano編輯工具。

#!/bin/sh  
docky &  
pcmanfm &  
feh --bg-fill /home/user/desktop.jpg  
compton -c --shadow-exclude 'n:e:Docky' &  
openbox 

你還需要讓這個文件成為可執行文件,為此使用sudo chmod +x /usr/local/bin/mydesk。該腳本啟動一堆程序,先從 Docky 和 PCManFM 開始。這些程序后面的“&”符號表明,我們想要在后臺運行這些程序,而不是讓腳本等待每個程序關閉。就 Feh 而言,你需要更改桌面圖像的位置的參數,指向你主目錄下的某個圖片。請注意,Compton 這一行排除了在 Docky 窗口上繪制陰影(因為 Docky 窗口已經有自己的特效)。

現在,在平常的 Linux 桌面會話中,我們根本無法運行這個腳本,只能指望一切都可以正常,因為我們已經在運行著窗口管理器、面板及其他組件。相反,我們需要告訴登錄管理器(輸入用戶名和密碼的那個屏幕):我們的腳本啟動其自己的桌面環境,我們稱之為 MyDesk。以根用戶身份,創建含有下列內容的文本文件 /usr/share/xsessions/mydesk.desktop

[Desktop Entry]  
Name=MyDesk  
Comment=Custom desktop  
Exec=/usr/local/bin/mydesk  
TryExec=/usr/local/bin/mydesk  
Type=XSession 

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

一旦你為會話創建好了啟動腳本和 .desktop 文件,它就會出現在登錄管理器中。

六、是時候測試一下了

現在退出當前桌面,再登錄屏幕,選擇 MyDesk 作為你的會話。輸入你的用戶名和密碼,哇!你的定制桌面環境就會出現!看一下文章開始的屏幕截圖:在這里,我們點擊了左下方的錨圖標,選擇了選項中的“面板模式”(讓它占用屏幕的整個寬度),然后應用了 Matte 主題。我們還在右邊添加了一個工作空間切換器 Docklet。

請注意:Dock y并不包括一個傳統的“開始”程序菜單;相反,可以在桌面上右擊鼠標,選擇“終端”,打開命令行窗口。輸入你想添加到面板中的某個程序(比如“firefox”或“libreoffice”),該程序啟動后,相應圖標就會出現在面板上。右擊圖標,選擇“固定”,那樣即使該程序沒有運行,啟動器也依然在那里。想要退出定制桌面,只要在桌面上任何地方右擊鼠標,選擇“退出”。(想對 Openbox 窗口管理器實行精細控制,有必要安裝 Obconf,然后從右擊桌面菜單中選擇它。)

而這僅僅是個開始!這只是你能創建的桌面的一個例子。你可以試著在 /usr/local/bin/mydesk腳本中運行 cairo-dock &,而不是docky &,嘗試另一種停靠欄,或者更換窗口管理器。有一點很重要:窗口管理器是腳本中的最后一行,并不以“&”符號結束,這樣當你退出窗口管理器時,它同時退出了整個會話,讓你回到登錄屏幕。

好好試一試窗口管理器、面板、文件管理器及其他工具的不同組合;如果你打造了特別出色的桌面環境,歡迎留言交流。說不定哪一天某個 Ubuntu 分支就基于你定制的桌面,也許呢。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!