Fluxbox
Fluxbox是一个用于X11的窗口管理器。它基于(现已废弃的)Blackbox 0.61.1代码,但进行了大量增强和持续开发。Fluxbox提供了一系列窗口管理功能,如标签页和分组,并且拥有数百种可用的样式(主题)。所有Fluxbox配置都存储在纯文本文件中;然而,一些设置可以通过配置菜单以图形方式进行调整。
安装
安装fluxbox软件包。
启动
使用xinit运行startfluxbox。
配置
系统范围的Fluxbox配置文件位于/usr/share/fluxbox,而用户配置文件位于~/.fluxbox。
- init — Fluxbox的主要资源配置文件。请参阅编辑init文件。
- menu — Fluxbox菜单配置文件。请参阅下文及编辑menu文件。
- keys — Fluxbox键盘快捷键(热键)文件。请参阅下文及键盘快捷键。
- startup — 启动应用程序的地方,但请参阅下文的.xinitrc以及编辑startup文件。
- overlay — 用于覆盖样式元素的配置文件。请参阅样式覆盖。
- apps — 用于记住特定应用程序窗口配置的配置文件。请参阅编辑apps文件。
- windowmenu — 用于修改窗口菜单本身的配置文件:编辑windowmenu。
菜单
Fluxbox的根菜单定义在~/.fluxbox/menu中,可以通过右键单击桌面访问。与其他轻量级窗口管理器一样,Fluxbox不会在您安装新应用程序时自动更新其菜单。因此,当新应用程序被安装/卸载时,需要重新生成菜单。
菜单项出现的基本语法是
[exec] (name) {command} path-to-icon
...其中“name”是您希望该菜单项显示的文本,“command”是二进制文件的位置,例如:
[exec] (Firefox Browser) {/usr/bin/firefox} path-to-firefox-icon
请注意,path-to-icon是可选的。如果要创建子菜单,语法是
[submenu] (Name) ... ... [end]
编辑完成后,保存文件并退出。无需重启Fluxbox。有关更多信息,请阅读编辑Fluxbox菜单。
自动生成菜单
有一些程序可以生成完整的Fluxbox根菜单,或者可以手动包含在现有根菜单定义中的已安装应用程序的子菜单。这些程序将在下面概述。
fluxbox-generate_menu
Fluxbox自带了一个内置命令
$ fluxbox-generate_menu
此命令将根据您安装的程序自动生成一个~/.fluxbox/menu文件。但是,它生成的菜单不如MenuMaker生成的全面。
MenuMaker
MenuMaker是一个功能强大的工具,可以为包括Fluxbox在内的各种窗口管理器创建基于XML的菜单。MenuMaker会搜索您的计算机上的可执行程序,并根据结果创建菜单。如果需要,它可以配置为排除旧版X、GNOME、KDE或Xfce应用程序。
安装menumaker,然后您可以通过运行以下命令生成完整的菜单并覆盖默认菜单:
$ mmaker -f FluxBox
您可以通过运行带有以下开关的mmaker命令来避免将基于终端的应用程序(如alsamixer(1))填充到您的菜单中:--no-legacy和--no-debian。例如:
$ mmaker -f --no-legacy --no-debian FluxBox
要查看更多MenuMaker选项
$ mmaker --help
xdg-menu
您也可以使用xdg-menu生成菜单。请参阅xdg-menu#Fluxbox部分。
其他菜单
除了根菜单,Fluxbox还提供以下菜单:
- 工作区菜单:在桌面上中键单击。
- 配置菜单:位于“根”菜单的“Fluxbox”部分中。
- 窗口菜单:右键单击任何窗口的标题栏,或者最小化时其边框。可以编辑。请参阅fluxbox-menu(5)。
- 工具栏菜单:右键单击工具栏的空白区域。也作为配置菜单中的子菜单找到。
- Slit菜单:在配置菜单中的子菜单中找到。
键盘
键盘快捷键
Fluxbox热键文件位于~/.fluxbox/keys。
Control键表示为Control。Mod1对应Alt键,Mod4对应Super键(不是标准键,但大多数用户将Super映射到Win键)。
使用Fluxbox设置键盘布局
只需将以下行添加到~/.fluxbox/startup:
setxkbmap us -variant intl & # to have a us keyboard with special characters enabled (like éóíáú)
您可以将“us”替换为您的语言代码,并删除变体选项(例如:“us_intl”,在某些设置中它与上述命令的工作方式相同)。有关更多选项,请参阅setxkbmap(1)。
要在菜单中创建帮助功能,只需在~/.fluxbox/menu中添加:
[submenu] (Keyboard)
[exec] (normal) {setxkbmap us}
[exec] (international) {setxkbmap us -variant intl}
[end]
Fluxbox的剪贴板管理器
您可以将几乎任何您喜欢的剪贴板管理器与Fluxbox一起使用。parcellite软件包与Fluxbox配合得非常好。只需安装parcellite,然后通过在exec fluxbox调用之前将以下命令添加到~/.fluxbox/startup来启动parcellite:
## clipboard manager clipmgr=$(type -p parcellite) [ -x "$clipmgr" ] && "$clipmgr" &
工作区
Fluxbox默认有四个工作区。这些可以通过Ctrl+F1-F4快捷键访问,或者通过使用鼠标左键单击工具栏上的箭头来访问。您还可以通过在中键单击桌面时弹出工作区菜单来访问工作区。
标签页和分组
当您的桌面上至少有两个窗口可见时,使用Ctrl+左键单击一个窗口的顶部标签页,然后将其拖入另一个打开的窗口。这两个窗口现在将分组在一起,并在顶部的窗口标签栏中显示窗口标签。您现在可以执行一个将影响整个窗口“组”的窗口操作。要撤销标签页,请使用Ctrl+左键单击一个标签页,然后将其拖到桌面的空白区域。
自启动
Fluxbox提供了自动启动应用程序的功能。~/.fluxbox/startup文件是一个用于自动启动应用程序以及启动Fluxbox本身的脚本。#符号表示注释。确保所有启动应用程序的行都位于启动Fluxbox本身调用之前。否则,这些行将在Fluxbox本身终止之前不会被执行。
壁纸
Fluxbox提供了一个名为fbsetbg的包装脚本,可以帮助设置壁纸。有关详细信息,请参阅Fluxbox wiki。或者,如果您愿意,也可以独立使用feh或Nitrogen等壁纸设置器。请参阅下文。
轻松切换多个背景
将以下子菜单放在Fluxbox菜单中:
[submenu] (Backgrounds)
[wallpapers] (~/.fluxbox/backgrounds) {feh --bg-scale}
[wallpapers] (/usr/share/fluxbox/backgrounds) {feh --bg-scale}
[end]
然后,将您的背景图片放入~/.fluxbox/backgrounds或您指定的任何其他目录;它们将以与样式相同的方式出现。
对于没有“xinerama”(例如Nvidia TwinView)的系统上的双屏壁纸,也适用相同的方法。
[submenu] (Backgrounds)
[wallpapers] (/path/to/your/backgrounds) {feh --bg-scale --no-xinerama }
[end]
在Fluxbox中使用feh
安装feh。
要让Fluxbox通过feh加载壁纸:
- 首先,使
.fehbg可执行。 - 然后将以下行添加到
~/.fluxbox/init文件(或修改它):
session.screen0.rootCommand: ~/.fehbg
- 或者,将以下行添加到
~/.fluxbox/startup文件(或修改它):
~/.fehbg
主题
要安装Fluxbox主题,请将主题归档文件解压到样式目录。默认目录是:
- 全局 -
/usr/share/fluxbox/styles - 仅用户 -
~/.fluxbox/styles
fluxmod-stylesAUR软件包包含来自(现已废弃的)fluxmod.dk网站的许多Fluxbox样式。
要创建您自己的Fluxbox样式,请参阅fluxbox-style(5)和tenr.de Fluxbox样式指南[死链接 2025-11-16—SSL error]。
如果您使用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]
The Slit
一些窗口管理器,如Fluxbox、Window Maker和Openbox,都有一个“Slit”。这是一个用于任何“可停靠”应用程序的停靠区。停靠的应用程序会被固定,并出现在每个工作区上。它不能自由移动,也不会受到任何窗口操作的影响。它本质上是一个小型小部件。在这种情况下,有用的停靠应用程序通常是时钟、系统监视器、天气应用程序等。访问dockapps.net可以查看有哪些可用的dockapps。