如果你崇尚效率和極簡主義,並且正在為你的 Linux 桌面尋找新的視窗管理器,那麼你應該嘗試一下動態視窗管理器 dwm。以不到 2000 標準行的程式碼寫就的 dwm,是一個速度極快而功能強大,且可高度客製化的視窗管理器。
你可以在平舖、單片和浮動布局之間動態選擇,使用標籤將視窗組織到多個工作區,並使用鍵盤快捷鍵快速導航。本文將幫助你開始使用 dwm。
要在 Fedora 上安裝 dwm,執行:
$ sudo dnf install dwm dwm-user
dwm
包會安裝視窗管理器本身,dwm-user
包顯著簡化了設定,本文稍後將對此進行說明。
此外,為了能夠在需要時鎖定螢幕,我們還將安裝 slock
,這是一個簡單的 X 顯示鎖屏。
$ sudo dnf install slock
當然,你可以根據你的個人喜好使用其它的鎖屏。
要啟動 dwm,在登入屏選擇 “dwm-user” 選項。
登入後,你將看到一個非常簡單的桌面。事實上,頂部唯一的一個面板列出了代表工作空間的 9 個標籤和一個代表窗戶布局的 []=
符號。
在檢視布局之前,首先啟動一些應用程式,以便你可以隨時使用布局。可以通過按 Alt+p
並鍵入應用程式的名稱,然後回車來啟動應用程式。還有一個快捷鍵 Alt+Shift+Enter
用於開啟終端。
現在有一些應用程式正在執行了,請檢視布局。
預設情況下有三種布局:平舖布局,單片布局和浮動布局。
平舖布局由條形圖上的 []=
表示,它將視窗組織為兩個主要區域:左側為主區域,右側為堆疊區。你可以按 Alt+t
啟用平鋪布局。
平舖布局背後的想法是,主視窗放在主區域中,同時仍然可以看到堆疊區中的其他視窗。你可以根據需要在它們之間快速切換。
要在兩個區域之間交換視窗,請將滑鼠懸停在堆疊區中的一個視窗上,然後按 Alt+Enter
將其與主區域中的視窗交換。
單片布局由頂部欄上的 [N]
表示,可以使你的主視窗佔據整個螢幕。你可以按 Alt+m
切換到它。
最後,浮動布局可讓你自由移動和調整視窗大小。它的快捷方式是 Alt+f
,頂欄上的符號是 ><>
。
每個視窗都分配了一個頂部欄中列出的標籤(1-9)。要檢視特定標籤,請使用滑鼠單擊其編號或按 Alt+1..9
。你甚至可以使用滑鼠右鍵單擊其編號,一次檢視多個標籤。
通過使用滑鼠突出顯示後,並按 Alt+Shift+1..9
,視窗可以在不同標籤之間移動。
為了使 dwm 盡可能簡約,它不使用典型的組態檔。而是你需要修改代表設定的 C 語言標頭檔案,並重新編譯它。但是不要擔心,在 Fedora 中你只需要簡單地編輯主目錄中的一個檔案,而其他一切都會在後台發生,這要歸功於 Fedora 的維護者提供的 dwm-user
包。
首先,你需要使用類似於以下的命令將檔案複製到主目錄中:
$ mkdir ~/.dwm$ cp /usr/src/dwm-VERSION-RELEASE/config.def.h ~/.dwm/config.h
你可以通過執行 man dwm-start
來獲取確切的路徑。
其次,只需編輯 ~/.dwm/config.h
檔案。例如,讓我們設定一個新的快捷方式:通過按 Alt+Shift+L
來鎖定螢幕。
考慮到我們已經安裝了本文前面提到的 slock
包,我們需要在檔案中新增以下兩行以使其工作:
在 /* commands */
註釋下,新增:
static const char *slockcmd[] = { "slock", NULL };
新增下列行到 static Key keys[]
中:
{ MODKEY|ShiftMask, XK_l, spawn, {.v = slockcmd } },
最終,它應該看起來如下:
... /* commands */ static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL }; static const char *termcmd[] = { "st", NULL }; static const char *slockcmd[] = { "slock", NULL }; static Key keys[] = { /* modifier key function argument */ { MODKEY|ShiftMask, XK_l, spawn, {.v = slockcmd } }, { MODKEY, XK_p, spawn, {.v = dmenucmd } }, { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, ...
儲存檔案。
最後,按 Alt+Shift+q
登出,然後重新登入。dwm-user
包提供的指令碼將識別你已更改主目錄中的config.h
檔案,並會在登入時重新編譯 dwm。因為 dwm 非常小,它快到你甚至都不會注意到它重新編譯了。
你現在可以嘗試按 Alt+Shift+L
鎖定螢幕,然後輸入密碼並按確認鍵再次登入。
如果你崇尚極簡主義並想要一個非常快速而功能強大的視窗管理器,dwm 可能正是你一直在尋找的。但是,它可能不適合初學者,你可能需要做許多其他設定才能按照你的喜好進行設定。
要了解有關 dwm 的更多資訊,請參閱該專案的主頁: https://dwm.suckless.org/。