開發者最需要的,就是一個順手的開發環境。
每個人的偏好不一樣,我的開發環境是 Fish Shell + Xfce + xmonad + Vim,已經用了好多年,非常滿意。
三個月前,我介紹了 Fish Shell,今天就來介紹 xmonad。根據本文,讀者可以從零開始配置並使用 xmonad。
xmonad 的所有操作都透過鍵盤,只適合命令列的重度使用者。如果你喜歡滑鼠和圖形介面,xmonad 不適合你。另外,它本身也不支援 Windows 系統。
一、xmonad 是什麼?
xmonad 是一種視窗管理器(window manager),用來管理軟體視窗的位置和大小,會自動在桌面上平鋪(tiling)視窗。
(圖片說明:各種軟體視窗)
注意,視窗管理器不是桌面環境(desktop environment)。後者是一套功能完善、整合各種工具的圖形使用者介面,比如 Gnome 和 KDE。桌面環境肯定包含了視窗管理器,但是(某些)視窗管理器可以不需要桌面環境,獨立執行,xmonad 就是這種。
(圖片說明:典型的桌面環境)
桌面環境通常很重,視窗管理器就很輕,不僅體積小,資源佔用也少,使用者可以配置各種細節,釋放出系統的最大效能。
Linux 系統允許使用者更換視窗管理器,有很多種可以選擇。xmonad 一直是最受歡迎的前三名,它使用 Haskell 語言編寫,是世界上使用人數最多的 Haskell 軟體。它的特點就是極簡化,效能高。
二、安裝
xmonad 的官網提供二進位制包,各個發行版都有。如果想自己編譯,也可以下載原始碼。
我的發行版是 Debian,安裝就是一行命令。
$ sudo apt-get install xmonad
此外,還需要再安裝兩個小工具。
$ sudo apt-get install xmobar dmenu
安裝完成後,退出當前對話(session),選擇 xmonad 會話重新登入。登入後,你會看到一個完全空白的桌面,什麼也沒有,這說明 xmonad 起作用了,因為這時還沒有任何軟體視窗。
三、常用命令
3.1 開啟終端
第一步,你需要開啟一個視窗。一般來說,總是開啟命令列終端視窗。
xmonad 提供一個功能鍵,稱為mod
鍵(modifier 的縮寫),所有操作都要使用這個鍵,預設為alt
鍵,但是一般會把它改掉,比如改成Windows
鍵,具體修改方法請看後文。
開啟終端視窗,按下mod + shift + return
(預設為alt + shift + return
)。這會開啟一個終端視窗,佔據了所有桌面空間。
按下mod + shift + return
,再開啟一個終端視窗。它與第一個視窗水平地平分螢幕,每個視窗占據50%空間。
注意,第二個視窗占據桌面的左邊,自動獲得焦點,成為當前視窗。這個左邊部分就稱為"主欄"(master pane),右邊部分稱為"副欄",前面開啟的第一個視窗自動進入副欄。
再按一次mod + shift + return
,開啟第三個視窗。
這時,第三個視窗就會佔據主欄,前兩個視窗自動進入副欄。規則就是,新視窗總是獨佔主欄,舊視窗平分副欄。
3.2 佈局模式
預設的佈局模式是,主欄在左邊,副欄在右邊。
按下mod + space
,佈局模式改成主欄在上方,副欄在下方。
再按一次mod + space
,就變成獨佔模式,當前視窗獨佔整個桌面,其他視窗不可見。
再按一次mod + space
,就變回預設模式(主欄在左邊,副欄在右邊)。
按下mod + ,
(mod + 逗號),一個副欄視窗會移動到主欄,即主欄變成有兩個視窗,副欄變成只有一個視窗。
再按一次mod + ,
(mod + 逗號),主欄變成三個視窗,副欄消失。
按下mod + .
(mod + 句號),主欄減少一個視窗,副欄增加一個視窗。
3.3 移動焦點
新視窗總是自動獲得焦點,變成當前視窗。按下mod + j
,焦點順時針移動到下一個視窗。
按下mod + k
,焦點逆時針移動到上一個視窗。
如果當前視窗在副欄,按下mod + return
,會與主欄視窗對調位置。
3.4 調整視窗順序
按下mod + shift + j
,按照順時針的順序,當前視窗與下一個視窗交換位置,即當前視窗前進到下一個位置。
按下mod + shift + k
,按照逆時針順序,當前視窗與上一個視窗交換位置。即當前視窗後退到上一個位置。
3.5 調整欄位大小
按下mod + l
,主欄增加尺寸。
按下mod + h
,副欄增加尺寸。
3.6 浮動視窗
正常情況下,xmonad 決定了視窗的位置和大小,但有時我們希望自己控制。xmonad 允許某個視窗浮動,脫離原有的佈局。
按下mod + 滑鼠左鍵
拖動視窗,該視窗就會變成浮動視窗,可以放到螢幕的任何位置。
按下mod + 滑鼠右鍵
可以調整視窗大小。
按下mod + t
,當前浮動視窗就會結束浮動,重新回到 xmonad 的佈局。
3.7 關閉視窗
視窗可以自然關閉(比如終端視窗按ctrl + d
),也可以讓 xmonad 強行關閉它。
按下mod + shift + c
,會關閉當前視窗,焦點移到下一個視窗。
3.8 退出 xmonad
按下mod + shift + q
,將會立刻關閉所有視窗,退出 xmonad,使用者需要重新登入。
四、工作區
xmonad 提供9個工作區,相當於提供9個桌面。按下mod + 1
到mod + 9
切換。 xmonad 啟動後,預設處於1號工作區 。
如果要將一個視窗移到不同的工作區,先用mod + j
或mod + k
,將其變成焦點視窗,然後使用mod + shift + 6
,就將其移到了6號工作區。
我的習慣是,1號工作區是終端,2號是瀏覽器,4號是虛擬機器。
五、多顯示器
多顯示器需要使用配置工具,我用的是 xrandr。其他工具還有 Xinerama 和 winView,另外 arandr 是 xrandr 的圖形介面,也可以用。
下面的命令檢視顯示器的連線情況。
$ xrandr -q
具體的配置教程可以看這裡。
使用多顯示器時,每個顯示器會分配到一個工作區。預設情況下,1號工作區顯示在主顯示器,2號工作區顯示在第二個顯示器。如果要將4號工作區顯示在當前顯示器,那麼按下mod + 4
,4號工作就會與當前螢幕中的工作區互換位置。
mod + w
轉移焦點到左顯示器,mod + e
轉移焦點到右顯示器。
mod + shift + w
將當前視窗移到左顯示器,mod + shift + e
將當前視窗移到右顯示器。
六、配置檔案
xmonad 的配置檔案是~/.xmonad/xmonad.hs
。該檔案需要使用者自己新建,這裡是一個簡單的範例,詳細的解釋可以看官網。
這個檔案裡面,modMask
決定了mod
到底是哪一個鍵。
modMask = mod4Mask
上面的這行就將mod
鍵設為了Windows
鍵。
修改配置檔案以後,按下mod + q
,新的配置就會生效。
七、xmobar
xmonad 的預設桌面,什麼也沒有,不太方便。xmobar 提供了一個狀態列,將常用資訊顯示在上面,比如 CPU 和記憶體的佔用情況、天氣、時間等等。
(圖片說明:頂部狀態列就是 xmobar。)
它的配置檔案是~/.xmobarrc
(教程1,2,3)。這裡是一個最簡單配置,這裡是我的膝上型電腦使用的配置。
八、dmenu
最後,dmenu 在桌面頂部提供了一個選單條,可以快速啟動應用程式。
(圖片說明:dmenu 顯示在螢幕頂部,輸入fire
會自動顯示包含fire
的啟動命令。)
它從系統變數$PATH
指定的路徑中,尋找所有的應用程式,根據使用者的鍵入,動態提示最符合的結果。
按下mod + p
就會進入dmenu
選單欄,按下ESC
鍵可以退出。方向鍵用來選擇應用程式,return
鍵用來啟動。
(完)