Fluxbox

出自 Arch Linux 中文维基

Fluxbox 是一個 X11 下的窗口管理器。它基於 Blackbox(現在停止開發) 0.61.1 的代碼構建,現在依然在開發中,並且功能顯著增強。Fluxbox 佔用資源少,速度快,並且提供切換和分組等有趣的窗口管理工具。配置文件簡單易懂,便於編輯,有上百種的美化桌面的「主題」。Arch Linux 和 Fluxbox 可以讓一台 Pentium 800 和 256M 內存的電腦煥發活力。

安裝[編輯 | 編輯原始碼]

安裝 fluxbox

啟動 Fluxbox[編輯 | 編輯原始碼]

圖形界面登錄

顯示管理器 的會話菜單中選擇 fluxbox

手動

編輯 ~/.xinitrc 並添加如下幾行:

exec startfluxbox

查看 xinitrc 來獲取詳細信息,例如保存登錄會話。

配置[編輯 | 編輯原始碼]

系統範圍的 Fluxbox 配置文件在 /usr/share/fluxbox 中,用户個人配置文件在 ~/.fluxbox 中,配置文件如下:

  • init - 主要的 Fluxbox 資源配置文件。參閱 編輯init文件
  • menu - Fluxbox 菜單配置文件。參閱下文和 編輯menu文件
  • keys - Fluxbox 鍵盤快捷鍵(熱鍵)配置文件。參閱下文和 這裏
  • startup - 編輯開機啟動程序,參閱下文中關於 .xinitrc 的部分和 這裏
  • overlay - 重載主題元素的配置文件。參閱 這裏
  • apps - 記憶具體應用程式窗口配置的文件。參閱 這裏
  • windowmenu - 配置窗口菜單自身的文件。看這裏

文件夾中有很多不太重要的配置文件。需要注意的有 init,menu,keys 和 startup。

菜單管理[編輯 | 編輯原始碼]

第一次安裝 Fluxbox 時系統會在 ~/.fluxbox/menu 中創建基本的程序菜單,在桌面上右擊鼠標可以訪問該菜單。和其他輕量窗口管理器一樣,Fluxbox 在安裝新程序的時候並不自動升級其程序菜單。因此推薦先在系統上安裝需要的應用程式,然後再生成或編輯程序菜單。有四種基本方法來添加/編輯項目和增強菜單:

使用 fluxbox-generate_menu[編輯 | 編輯原始碼]

Fluxbox 提供一個內建的命令:

$ fluxbox-generate_menu

該命令會根據系統中已安裝的程序來自動生成 ~/.fluxbox/menu 文件。但是生成的菜單綜合性不如使用 MenuMaker 生成的菜單。

使用 MenuMaker[編輯 | 編輯原始碼]

MenuMaker 是一個為各種各樣的窗口管理器創建基於 XML 菜單的有力工具,支持 Fluxbox。MenuMaker 搜索計算機中所有的可執行程序,基於搜索結果創建程序菜單。如果需要的話,可以配置其排除 Legacy X,GNOME, KDE, 和 Xfce 的應用程式。

安裝 menumaker,運行以下命令生成一個完整菜單並覆蓋默認菜單。

$ mmaker -f FluxBox

可以在運行命令時加入以下開關來避免將基於命令行的程序—例如 alsamixer—加入菜單:--no-legacy--no-debian。例如:

$ mmaker -f --no-legacy --no-debian FluxBox

要查看更多 MenuMaker 選項:

 mmaker --help

使用 Xdg-menu[編輯 | 編輯原始碼]

可以使用 Xdg-menu 來生成菜單,參閱 Xdg-menu#FluxBox 章節。

手動創建/編輯菜單[編輯 | 編輯原始碼]

使用編輯器編輯 ~/.fluxbox/menu 文件,一個菜單項目的基本語法類似:

[exec] (name) {command} <path to icon>

"name" 是想要在菜單項目上顯示的文字,"command" 是程序所在的位置。"<path to icon>"是可選的。例如:

[exec] (Firefox Browser) {/usr/bin/firefox} <path to firefox icon>

創建子菜單的語法如下:

[submenu] (Name)
...
...
[end]

編輯完成後,保存退出,不需要重啟 Fluxbox。更多的信息參閱 編輯 Fluxbox 菜單

Init 文件[編輯 | 編輯原始碼]

~/.fluxbox/init 文件是 Fluxbox 的主要配置資源文件。可以用來改變 Fluxbox,窗口,工具欄,焦點等基本功能。一些選項也可以從Fluxbox配置菜單中找到。詳細內容參閱 編輯 init 文件

熱鍵[編輯 | 編輯原始碼]

Fluxbox 提供基本的熱鍵功能。Fluxbox 熱鍵文件位於 ~/.fluxbox/keys。 Control 鍵代表 "Control"。 Mod1 對應 Alt 鍵,Mod4 對應 Super 鍵(Super 鍵不是一個標準按鍵,經常被映射到 "Win" 鍵)。當 Fluxbox 安裝完成後第一次運行時,Fluxbox 提供一組幾乎完成的非常有用的熱鍵。細讀精研 ~/.fluxbox/keys 文件可以增強 Fluxbox 體驗。

例子:快捷的方式來控制揚聲器音量:

Control Mod1 Up :Exec amixer set Master,0 5%+
Control Mod1 Down :Exec amixer set Master,0 5%-

聲音[編輯 | 編輯原始碼]

參考 Advanced Linux Sound Architecture#Keyboard volume controlPulseAudio#Keyboard volume control

工作區[編輯 | 編輯原始碼]

Fluxbox 默認提供四個工作區。可以通過 Ctrl+F1-F4 快捷鍵訪問,或者在工具欄上的箭頭單擊左鍵。也可以通過使用鼠標中鍵在桌面上單擊,在工作區菜單上選擇工作區。

切換和分組[編輯 | 編輯原始碼]

當桌面上有兩個以上窗口時,在一個窗口的上窗口標籤單擊 ctrl+鼠標左鍵,然後拖動該窗口到另一個窗口,這兩個窗口會以標籤頁的形式集合在一起,現在執行一個窗口操作將影響到整個窗口「集合」。在標籤頁上單擊 ctrl+鼠標左鍵,然後拖動到桌面空白位置將還原窗口。

壁紙[編輯 | 編輯原始碼]

在 Fluxbox 種設置壁紙一直很複雜,特別是透明度問題。請參閱 Fluxbox wiki 中 壁紙設置 章節。

檢查計算機中是否有壁紙設置程序。

$ fbsetbg -i

如果沒有,安裝 feh, esetroot 或者 wmsetbg。然後在 ~/.xinitrc 文件中 "exec" 行之前添加 "fbsetbg" 行。例如:

fbsetbg /path/to/my/image.image

如果該命令返回如下信息:

$ /usr/bin/fbsetbg: line 153: xmessage: command not found

那麼需要安裝 xorg-xmessage 包。

輕鬆切換多個壁紙[編輯 | 編輯原始碼]

在 Fluxbox 菜單中添加子菜單如下:

[submenu] (Backgrounds)
[wallpapers] (~/.fluxbox/backgrounds) {feh --bg-scale}
[wallpapers] (/usr/share/fluxbox/backgrounds) {feh --bg-scale}
[end]

將壁紙放到 ~/.fluxbox/backgrounds 中或者其他指定文件夾,壁紙將以同樣的方式在主題中顯示。

在沒有 'xinerama' 的系統上顯示雙屏幕壁紙和上述一樣,例如:

[submenu] (Backgrounds)
[wallpapers] (/path/to/your/backgrounds) {feh --bg-scale --no-xinerama }
[end]

使用 feh[編輯 | 編輯原始碼]

安裝 feh

以下步驟確保 Fluxbox 下次啟動時會加載 feh 背景。

1. 確保 .fehbg 可執行:

$ chmod 770 ~/.fehbg

2.~/.fluxbox/init 文件中添加/修改以下行:

session.screen0.rootCommand:	~/.fehbg

3.~/.fluxbox/startup 文件中添加/修改以下行:

~/.fehbg

使用 Nitrogen[編輯 | 編輯原始碼]

也可以使用 Nitrogen。使用以下命令來運行圖形壁紙選擇軟件:

$ nitrogen

添加包含圖片的文件夾,選擇圖片然後應用。當然可以更改圖片選項,例如壁紙居中或者放大。

添加如下行:

nitrogen --restore &

~/.fluxbox/startup 文件中確保壁紙在登錄時使用。

如果重啟 Fluxbox 後,當前選擇主題的壁紙覆蓋了 Nitrogen 設置的壁紙。編輯使用的主題的 theme.cfg 文件,註釋或者刪除如下幾行來解決這個問題:

background:
background.color:
background.colorTo:

主題[編輯 | 編輯原始碼]

要安裝 Fluxbox 主題,將主題文件解壓縮到主題文件夾,默認的主題文件夾是

  • 全局 - /usr/share/fluxbox/styles
  • 僅用户 - ~/.fluxbox/styles

Arch Linux AUR 中有一套很漂亮的 Fluxbox 主題—"fluxmod-styles"。從 這裏 獲得。正確安裝後將會在 Fluxbox 菜單中的 Fluxbox -> Styles section 中顯示。

想要創建自己的 Fluxbox 主題,請參閱 fluxbox-style(5)Fluxbox/Style guide主題指南[失效連結 2022-09-17 ⓘ]

如果使用

$ mmaker -f FluxBox

創建菜單,那麼安裝完主題後將不會看到主題選擇菜單。 將下面幾行添加到 ~/.fluxbox/menu 文件中的重啟菜單選項後來修正。

[submenu] (System Styles) {Choose a style...}
      [stylesdir] (/usr/share/fluxbox/styles)
        [end]
[submenu] (User Styles) {Choose a style...}
      [stylesdir] (~/.fluxbox/styles)
        [end]

Slit[編輯 | 編輯原始碼]

Fluxbox,WindowMaker 和一些輕量的窗口管理器都有 "Slit",可以是所有程序 "dock" 化。一個 "dock" 化的程序可以錨定在任何工作區上,可以被輕鬆移動,並且不受任何窗口操作的影響,它基本上是一個小部件,將時鐘,系統監視器,天氣等 "dock" 化非常有用。參閱 dockapps.net

自啟動程序[編輯 | 編輯原始碼]

Fluxbox 本身提供了自啟動程序的功能。~/.fluxbox/startup 文件是一個像啟動 Fluxbox 一樣自啟動應用程式的腳本。# 標記是註釋。

一個簡單的例子:

fbsetbg -l # sets the last background set, very useful and recommended.
# In the below commands the ampersand symbol (&) is required on all applications that do not terminate immediately.
# Failure to provide them will cause Fluxbox not to start.
idesk &
xterm &
# exec is for starting Fluxbox itself, do not put an ampersand (&) after this or Fluxbox will exit immediately.
exec /usr/bin/fluxbox
# or if you want to keep a log, uncomment the below command and comment out the above command:
# exec /usr/bin/fluxbox -log ~/.fluxbox/log

其他菜單[編輯 | 編輯原始碼]

上面的 "菜單管理" 章節討論了主要菜單。這些菜單在 Fluxbox 行話中稱為"根"菜單。Fluxbox 也為用户提供了一些其他的菜單。

  • 工作區菜單:在桌面上點擊鼠標中鍵。
  • 配置菜單:位於"根"菜單的 "Fluxbox" 部分。
  • 窗口菜單:在任何窗口或者最小化窗口的標題欄右擊鼠標。可以編輯窗口菜單。參閱 fluxbox-menu man page。
  • 工具欄菜單:在工具欄空白部分右擊鼠標。也在配置菜單的子菜單中。
  • Slit 菜單:在配置菜單的子菜單中。

桌面效果[編輯 | 編輯原始碼]

想要在 Fluxbox 開啟桌面效果—透明或者陰影,需要安裝 X compositor,例如 Xcompmgr 或者 Compton

通知[編輯 | 編輯原始碼]

在 Fluxbox 中開啟桌面通知,需要安裝通知伺服器。參閱 desktop notifications

沒有 xorg.conf 文件後的 Xorg 配置[編輯 | 編輯原始碼]

Xorg 不再需要 xorg.conf 文件了,以前在 xorg.conf 文件中所做的關於鍵盤和省電模式的設定可以通過以下方式調整。

在 Fluxbox 中設定鍵盤佈局[編輯 | 編輯原始碼]

將以下行添加到 ~/.fluxbox/startup 文件中:

setxkbmap us -variant intl & # 在 us 键盘中添加特殊字符支持 (类似 éóíáú)

可以添加自己的語言代碼來代替 'us',並且移除 'variant' 選項。參閱 setxkbmap 手冊頁來獲得更多選項。

~/.fluxbox/menu 文件中添加以下行來獲得菜單中幫助功能:

[submenu] (Keyboard)
      [exec] (normal) {setxkbmap us}
      [exec] (international) {setxkbmap us -variant intl}
[end]

參閱[編輯 | 編輯原始碼]