使用 Fluxbox 桌面作為你的視窗管理器

2020-04-07 11:33:00

本文是 24 天 Linux 桌面特別系列的一部分。Fluxbox 對系統資源的占用非常輕量,但它擁有重要的 Linux 桌面功能,讓你的使用者體驗輕鬆、高效、快捷。

桌面的概念可謂是仁者見仁智者見智。很多人把桌面看作一個家的基地,或者一個舒適的客廳,甚至是一個字面意義上的桌面,在其中放置著他們經常使用的記事本、最好的筆和鉛筆,還有他們最喜歡的咖啡杯。KDE、 GNOME、Pantheon 等等在 Linux 上提供了這種舒適的生活方式。

但是對一些使用者來說,桌面只是一個空蕩蕩的顯示器空間,這是還沒有任何可以自由浮動的應用程式視窗直接投射到他們的視網膜上的副作用。對於這些使用者來說,桌面是一個空的空間,他們可以在上面執行應用程式 —— 無論是大型辦公軟體和圖形套件,還是一個簡單的終端視窗,或是來管理服務的托盤小程式。這種操作 POSIX 計算機的模式由來已久,該家族樹的一支是 *box 視窗管理器:Blackbox、Fluxbox 和 Openbox。

Fluxbox 是一個 X11 系統的視窗管理器,它基於一個較老的名為 Blackbox 的專案。當我發現 Linux 時,Blackbox 的開發已進入衰退期,因此我就喜歡上了 Fluxbox ,此後我至少在一個以上的常用的系統上使用過它。它是用 C++ 編寫的,並在 MIT 開源許可證下授權。

安裝 Fluxbox

你很可能會在你的 Linux 發行版的軟體庫中找到 Fluxbox,但是你也可以在 Fluxbox.org 上找到它。如果你正在執行另外一個桌面,在同一個系統上安裝 Fluxbox 是安全的,因為 Fluxbox 不會預設任何設定或附帶的應用程式。

在安裝 Fluxbox 後,登出你當前的桌面對談,以便你可以登入一個新的桌面對談。預設情況下,你的桌面對談管理器 (KDM、GDM、LightDM 或 XDM,取決於你的安裝設定) 將繼續讓登入到之前的桌面,所以你在登入前必需要覆蓋上一個桌面。

使用 GDM 覆蓋一個桌面:

在 GDM 中選擇你的桌面會話

或者使用 KDM:

使用 KDM 選擇你的桌面會話

設定 Fluxbox 桌面

當你第一次登入到桌面時,螢幕基本是空的,因為 Fluxbox 提供的所有東西是面板(用於工作列、系統托盤等等)和用於應用程式視窗的視窗裝飾品。

在 CentOS 7 上的默認 Fluxbox 配置

如果你的發行版提供一個簡單的 Fluxbox 桌面,你可以使用 feh 命令(你可能需要從你的發行版的軟體庫中安裝它)來為你的桌面設定背景。這個命令有幾個用於設定背景的選項,包括使用你選擇的牆紙來填充螢幕的 --bg-fill 選項,來按比例縮放的 --bg-scale 等等選項。

$ feh --bg-fill ~/photo/oamaru/leaf-spiral.jpg

應用主題的 Fluxbox

預設情況下,Fluxbox 自動生成一個選單,在桌面上任意位置右鍵單擊可用該選單,這給予你存取應用程式的能力。根據你的發行版的不同,這個選單可能非常小,也可能列出 /usr/share/applications 目錄中的所有啟動程式。

Fluxbox 設定是在文字檔案中設定的,這些文字檔案包含在 $HOME/.fluxbox 目錄中。你可以:

  • keys 中設定鍵盤快捷鍵
  • startup 中啟動的服務和應用程式
  • init 設定桌面偏好設定(例如工作區數量、面板位置等等)
  • menu 中設定選單項

該文字組態檔非常易於推斷,但是你也可以(並且是應該)閱讀 Fluxbox 的文件

例如,這是我的典型選單(或者說至少有它的基本結構):

# 為使用你自己的選單,複製這些文字到 ~/.fluxbox/menu,然後編輯# ~/.fluxbox/init ,並更改 session.menuFile 檔案路徑到 ~/.fluxbox/menu[begin] (fluxkbox) [submenu] (apps) {}  [submenu] (txt) {}   [exec] (Emacs 23 (text\)) { x-terminal-emulator -T "Emacs (text)" -e /usr/bin/emacs -nw} <>   [exec] (Emacs (X11\)) {/usr/bin/emacs} <>   [exec] (LibreOffice) {/usr/bin/libreoffice}  [end]  [submenu] (code) {}   [exec] (qtCreator) {/usr/bin/qtcreator}   [exec] (eclipse) {/usr/bin/eclipse}  [end]  [submenu] (graphics) {}   [exec] (ksnapshot) {/usr/bin/ksnapshot}   [exec] (gimp) {/usr/bin/gimp}   [exec] (blender) {/usr/bin/blender}  [end]  [submenu] (files) {}   [exec] (dolphin) {/usr/bin/dolphin}   [exec] (konqueror) { /usr/bin/kfmclient openURL $HOME }  [end]  [submenu] (network) {}   [exec] (firefox) {/usr/bin/firefox}   [exec] (konqueror) {/usr/bin/konqueror}  [end] [end]## 更改視窗管理器或工作環境[submenu] (environments) {} [restart] (flux)  {/usr/bin/startfluxbox} [restart] (ratpoison)  {/usr/bin/ratpoison} [exec] (openIndiana) {/home/kenlon/qemu/startSolaris.sh}[end][config] (config) [submenu] (styles) {}  [stylesdir] (/usr/share/fluxbox/styles)  [stylesdir] (~/.fluxbox/styles) [end][workspaces] (workspaces)[reconfig] (reconfigure)[restart] (restart)[exit] (exeunt)[end]

該選單也提供一些偏好設定設定,例如,選擇一個主題,從 Fluxbox 對談中重新啟動或登出的能力。

我使用鍵盤快捷鍵來啟動大多數的應用程式,這些快捷鍵寫入到 keys 組態檔中。這裡有一些範例(Mod4 按鍵是 Super 鍵,我使用其來指定全域性快捷鍵):

# 開啟應用程式Mod4 t :Exec konsoleMod4 k :Exec konquerorMod4 z :Exec fbrunMod4 e :Exec emacsMod4 f :Exec firefoxMod4 x :Exec urxvtMod4 d :Exec dolphinMod4 q :Exec xscreensaver-command -activateMod4 3 :Exec ksnapshot

在這些快捷方式和一個開啟的終端之間,在我工作日的大部分時間內很少使用滑鼠,因此從一個控制器切換到另一個控制器不會浪費時間。並且因為 Fluxbox 很好地避開了控制器之間切換的方法,因此在其中操作沒有一絲干擾。

為什麼你應該使用 Fluxbox

Fluxbox 對系統資源的占用非常輕量,但是它擁有重要的功能,可以使你的使用者體驗輕鬆、快速、高效。它很容易客製化,並且允許你定義你自己的工作流。你不必使用 Fluxbox 的面板,因為還有其它優秀的面板。你甚至可以滑鼠中鍵點選並拖動兩個獨立的應用程式視窗到彼此之中,以便它們成為一個視窗,每個視窗都有自己的索引標籤。

可能性是無窮的,所以今天就在你的 Linux 上嘗試一下 Fluxbox 的簡單穩定吧!