Gentoo Logo

Fluxbox配置指南

内容:

1.  介绍

Fluxbox窗口管理器介绍

为了照顾不熟悉Linux桌面模型的朋友,先介绍一下,窗口管理器(WM,即Window Manager)就是由X11运行的来管理其他图形界面程序的应用程序。窗口管理器控制每个窗口的位置,尺寸,以及经由哪个桌面来访问。这可以自动由一系列用户定义的规则或是在运行时用鼠标和快捷键来完成,取决于特定的窗口管理器。

然而,有些窗口管理器除了管理窗口之外还有更多的功能。Fluxbox也提供了一个平台以用来载入应用程序、配置快捷键、设置桌面背景,以及通过slit组件来显示信息。GNOME的默认窗口管理器,Metacity,就没有包括这些功能,但是可以通过其他的GNOME程序来做这些事。所以,真的不能说Fluxbox是一个轻量级的窗口管理器。但是,因为Fluxbox包括了基本桌面环境必须的组件,许多人就可以用它来代替像GNOME或KDE一类的大型桌面套件。

让人更加疑惑的是,Fluxbox可以代替GNOME或KDE的默认的窗口管理器。一些人觉得GNOME的窗口管理器Metacity太简陋,没有他们所需的灵活性,但是Fluxbox又缺少一套完整桌面环境所内置整合的应用程序。因此,可以用Fluxbox来管理窗口,用GNOME来做剩下的事。请注意,这样的组合会因功能的部分重叠而产生一些问题。

Fluxbox也可以通过第三方软件来扩展。这常见于硬件资源有限的场合,或者只是出于个人喜好。

这份指南是针对Fluxbox新手,感兴趣或者那些只是想获得更多的Gentoo/Fluxbox体验的人而设的。这份指南也将介绍一些能在Fluxbox里很好运行的第三方程序,通过它们我们可以获得更多(可选的)功能。

2.  安装Fluxbox

基本安装

首先,请依照X服务器配置指南安装好X。

开始安装Fluxbox之前,你应该看一下可供选择的USE标记。

尽管我们提供了gnomekde USE标记来提供这些桌面环境的兼容性。但根据作者的经验,这些USE标记是不需要的。如果你想要qt、gtk+或者任何KDE/GNOME实用工具,只要单独的emerge然后配置就可以了。gnomekde标记只是增加了对相应的协议的支持,并不依赖于外部的库。不过它们确实会增加Fluxbox可执行程序的体积。

还有一个vim-syntax标记可以令接下来的配置更容易。这个比较会安装fluxbox-syntax,这是一个vim的Fluxbox配置文件语法高亮主题。这会让用户更容易分辨Fluxbox配置文件里的键值和初始化文件。这是一个vim的小扩展,所以强烈推荐。

最后,还有两个可以自定义Fluxbox功能的标记slittoolbar。提供这两个标记的目的是可以让不需要slit或者toolbar这两个功能的用户可以从Fluxbox中去掉这两个功能。如果你只想运行一个最简化的环境,或者你想用其他程序来提供这两个功能,这两个标记就派上用场了。

当你决定了你的USE标记之后,把它们加入/etc/portage/package.use

代码 2.1: 示例:添加USE标记

# echo "x11-wm/fluxbox -gnome -kde truetype vim-syntax" >> /etc/portage/package.use

拥有一个桌面锁定程序来阻止非授权用户是必要的,所以可以emerge xlockmore。大多数用户会想要一个设置背景的实用工具,我们可以emerge eterm,同时也是个不错的X11终端。

代码 2.2: 安装Fluxbox

# emerge fluxbox xlockmore eterm

就是这样,Fluxbox就安装好了!然而,现在很可能还不能有效地和那些工具配合使用。接下来的章节将指导安装其他必备的软件包,配置Fluxbox和第三方工具。记住这些步骤都是可选的,所以放轻松来挑选。

3.  配置Fluxbox

准备X11

Fluxbox是个X11运行的简单程序。如果需要,可以startx然后在xterm里键入fluxbox来运行它。但这很烦人。如果不需要启动到GUI,而只是想手动运行X11,那么可以让X启动时自动载入运行Fluxbox,请以一个普通(非root)用户执行这条命令:

代码 3.1: 编辑你的xinit

$ echo "exec startfluxbox" > ~/.xinitrc

这对于大多数用户来说并不理想,他们始终都要求有桌面环境;如果每次启动都要使用GUI,startx就是件痛苦的事。这也存在未察觉的安全风险。如果用户使用xlock锁住X11显示,但却是从控制台运行X11,那么能够物理地访问这台计算机的人可以切换到控制台,杀死X11,接着使用你的账户。解决这个问题唯一方法就是在后台运行X11或者从screen里运行。然后脱离screen,接着从控制台登出,这样虽然繁琐但是最有效。如果使用图形登录管理器,这个问题就不存在了。但这样又必须作为root来运行X11,这可能又是件坏事。在写这篇文字时,作者还没有发现对当前本版漏洞的利用,但如果有人在乎的话,就应该不用X11或者用上述方法处理显示器。注意这不是Fluxbox的问题,而是X11自身的问题。

有大量的图形登录管理器可供选择;在这里我们用SLiM。你可以选择其他的管理器,但SLiM很适用于Fluxbox,也适用于你可能已经安装的任何其他桌面环境如GNOME,KDE或Xfce等。

代码 3.2: 登录管理器

# emerge slim
# rc-update add xdm default

重要: 一定要先emerge slim然后添加xdm到default运行级别,而不是倒过来!颠倒次序将导致失败。接着我们要改动系统范围的配置文件:

代码 3.3: 编辑/etc/conf.d/xdm

DISPLAYMANAGER="slim"

主题和美工作品

如果真的想获得最小内存使用量的可以跳过这个章节。让用户制定窗口管理器的外观还是不错的。我们将安装Fluxbox专用主题,各种窗口管理器都适用的Gentoo美工作品,以及能够用在任何*box窗口管理器上的主题。

代码 3.4: 安装主题和美工作品

# emerge commonbox-styles commonbox-styles-extra \
  fluxbox-styles-fluxmod gentoo-artwork

首次运行Fluxbox

现在你可以运行Fluxbox了。首次运行的Fluxbox会在你的家目录下创建 ~/.fluxbox/,里面保存着所有设置和一些默认值。

你可以通过编辑~/.fluxbox/menu来定义一个叫做"Run..."的菜单入口,

代码 3.5: 从命令行启动Fluxbox

$ startx

如果你安装了SLiM或其他显示管理器,先变成root然后运行:

代码 3.6: 启动显示管理器

# /etc/init.d/xdm start

然后选择Fluxbox作为你的会话并作为普通用户登录。

刚装好的Fluxbox相当呆板。所能见到的只有一个底部有工具条的空白桌面。右击桌面的任何地方可以弹出菜单。通过菜单可以启动X应用程序,或者启动一个终端来运行命令。

Fluxbox键

Fluxbox自带的一套默认键绑定很弱,只能用来切换窗口和桌面,仅此而已。在改动之前,有一些事情需要知道,在Fluxbox键配置文件里,有一些古怪的修饰语。Mod1表示"Alt"键,Mod4则是不能说出口的(windows)键。Control和Shift就是Control和Shift。通常来说,最好还是用Alt/Windows键。因为其他的X11程序倾向于使用Control和Shift来定义他们自己的快捷键。

所有这些都是彼此独立的,可以轻松地省略任何不需要的,或者按你自己的需要修改。这份指南用的都是作者认为最通用的程序,软件包名如果和这里出现的不同就请替换之。请阅读Fluxbox手册以获得更多的信息。

所以,按照这种方法,启动一个文本编辑器(非root用户),打开~/.fluxbox/keys,然后升级快捷键。

代码 3.7: 修改快捷键

# 从当前用户锁定X11显示
Mod4 l   :ExecCommand xlock

# 用快捷键打开一系列程序。这里只是个例子,我相信
# 你能找到要诀……
Mod1 f   :ExecCommand firefox
Mod1 t   :ExecCommand thunderbird
Mod1 o   :ExecCommand oowriter
Mod1 v   :ExecCommand gvim

# Fluxbox没有音响控制功能,所以我们要自己折腾一个
# (假定用的是alsa。如果你用oss,那自己看着办吧)
Mod1 e   :ExecCommand Eterm -name alsa -e alsamixer

# 这是载入用来启动其他程序的fbrun
Mod1 r   :ExecCommand fbrun

# 程序控制。让我们轻松点……
Mod1 4   :Close
Mod1 m   :Minimize

# 如果你有aterm (emerge x11-terms/aterm),这可以在1024x768分辨率下打开
# 一个漂亮的透明无框的aterm,同时剩下一些空间给conky。再次声明,这
可以自由改动。
Mod1 a   :ExecCommand aterm -name aterm -sl 3000 -tr +sb -sr -sk -bg black -fg \
white -fade 90 -bl -tn xterm -fn \
-misc-fixed-medium-r-normal-*-*-120-*-*-c-*-iso8859-15 -g 116x57

# 和上面一样,但打开的是一个root登录的终端。当然,要知道root密码才可以用。
Mod1 s   :ExecCommand aterm -name aterm -sl 3000 -tr +sb -sr -sk -bg black -fg \
white -fade 90 -bl -tn xterm -fn \
-misc-fixed-medium-r-normal-*-*-120-*-*-c-*-iso8859-15 -g 116x57 -e su -

系统监视

桌面系统通常需要配置一个X11系统监视器。Gkrellm是个常用的监视器,但是本着Fluxbox最小化的精神,我们打算用个轻量级的监视器:conky。如果需要,可以换用其他监视器;指南到处都有。

代码 3.8: 安装conky

# emerge conky

默认的conky配置文件相当弱,阅读手册或是Gentoo Linux Conky指南可以获得更多信息。

图标

Fluxbox没有自带在桌面绘制图标的工具程序:每件事都要用快捷键或者右击菜单来处理。iDesk是个能满足这个需求的程序。其目标就是像我们这样使用最轻量窗口管理器又想在根窗口显示图标的用户,它甚至还能支持像透明之类的有趣特效!尽管名叫iDesk,它却跟Apple或Mac没关系(在作者所知的范围内)。安装iDesk一如:

代码 3.9: 安装idesk

# emerge idesk

装好之后,我们需要配置iDesk以令它可以按照我们的需要来显示图标。它的配置文件是~/.ideskrc。配置iDesk是个冗长的工作,这个指南也不能完全涵盖。以下的资源对你配置iDesk有所帮助:man ideskiDesk使用指南Gentoo论坛里的贴子

图形文件管理器选择

请注意Gentoo不需要文件管理器。这是完全可行的,在命令行做所有文件操作更加简洁(作者窃以为)。但是并非所有人都认同……

Gentoo/Fluxbox的新用户会因为缺少像Gnome里nautilus一样的图形文件管理器而叛逃。Fluxbox自身确实没有提供一个这样的程序,但一般说来,弄一个也不难。有很多可以选择,这份指南只给出三个,其中一个是为那些喜欢文字界面最低限度要求者而设,另外两个是为喜欢可点击图标的用户而设。当然,如果有可能,可以三个都装上,逐个尝试。

Gentoo文件管理器——最低限度

Gentoo是个致力于在提供GUI界面的便利的同时避免一般GUI界面所带来的各种臃肿的文件管理器。

代码 3.10: 安装Gentoo文件管理器

# emerge gentoo

注意: Gentoo文件管理器是个独立于Gentoo Linux发行版的项目。需要更多的信息,请查阅名称与图标使用指引

Gentoo文件管理器的目标是完全地通过GUI来配置,所以请根据需要随意调节。

Rox文件管理器——包含图标

Rox是个使用图标和文字的文件管理器并且和Windows的Explorer相当近似。

代码 3.11: 安装Rox文件管理器

# emerge rox

Rox的行为类似“传统”文件管理器,所以它的界面应该是很直观的。如果实在有不清楚的,还请查阅手册。

Thunar文件管理器

Thunar是个轻量快速的文件管理器,和Rox类似,它的行为也类似“传统”文件管理器。它包含了图标和文字,容易使用。虽然它一开始是为Xfce设计的,它也是基于Fluxbox的系统的一个很好的补充。

代码 3.12: 安装Thunar

# emerge -avt thunar

图片查看器

许多窗口管理器都带有查看目录中图片的实用工具,并且不允许编辑(一般用gimp或类似的程序来编辑)。如果你用命令行、gentoo或者rox作为文件管理器,图片查看器是必要的。虽然thunar可以显示缩略图,但有一个独立的轻量级图片查看器还是不错的。

代码 3.13: 安装gqview

# emerge gqview

gqview可以从任何目录启动,可以浏览任何支持的图片格式。

设置主题、背景和启动脚本

fluxbox有许多主题,可以通过右击菜单由"Fluxbox menu"到"System Styles"来选取。这些主题通常会设置单一颜色或者有一定梯度的背景。大多数人更愿意设置自己的背景,并且在选择主题时保持不变。要达到这个目的,我们要编辑Fluxbox的另外一个控制启动行为的配置文件。所以请启动文本编辑器,打开~/.fluxbox/startup

如果这个文件存在,就清空它。把下面的内容加到新文件,去掉注释,把大写的部分替换成适当的值。

代码 3.14: 编辑Fluxbox启动

# Gentoo的Fluxbox startup脚本

# 持续运行而不只是跑一下的程序
# 需要在命令的结尾跟上"&"。

# 展示Fluxbox欢迎屏幕
#fbsetbg -C /usr/share/fluxbox/splash.jpg

# 这是设置背景。你需要有一个程序来做这个。(推荐x11-terms/eterm)
#fbsetbg -f PATH_TO_IMAGE

# 个人字体目录
#xset +fp PATH_TO_FONT_DIRECTORY

# 启动图标程序。
#idesk &

# 这个命令一定要放在最后!
exec /usr/bin/fluxbox -log ~/.fluxbox/log

生成菜单

作者使用文本编辑器来创建菜单。如果这对你来说很有吸引力,请跳过这个章节,从手动编辑菜单开始继续。

在用过自动生成工具之后,手动编辑~/.fluxbox/menu来添加软件或者删除不用的都是可以的。注意从菜单删除并不代表从系统删除某个软件包,只是从各个用户的菜单删除而已。删除的程序仍旧可以从命令行运行。

你系统上有个可以用来生成菜单的叫做fluxbox-generate_menu的程序。运行它(作为非root用户):

代码 3.15: 生成菜单

$ fluxbox-generate_menu -is -ds

推荐使用fluxbox-generate_menu -is -ds,而不要用其他不了解Gentoo目录结构的程序。

这也可以通过Fluxbox菜单自身来做。通常“Fluxbox“菜单的”Regen Menu“可以重新运行上面的脚本。通过它可以把新安装的程序加进菜单里。

注意: 用这种方法自动生成菜单之外还可以手动做些修改。手动创建和编辑~/.fluxbox/usermenu(语法见下个章节)可以得到一个不会在下次创建脚本时被清除的个性化菜单。

手动编辑菜单

Fluxbox菜单是个遵循相当简单语法的文本文件,语法在本节描述。默认的菜单定义呈现在~/.fluxbox/menu文件。

执行程序的菜单项由[exec]元素定义。你可以在[begin](菜单根)以下,或者在[submenu]及与之对应的[end]行(子菜单定义)之间定义一个菜单项,例如:

代码 3.16: 定义新的菜单入口

# 自定义fluxbox菜单
[begin] (Fluxbox)
  (...)
  [exec] (XTerm White on Black) {xterm -ls -fg white -bg black}
  (...)
  [submenu] (More terminals)
    [exec] (Aterm default) {aterm}
    [exec] (Rxvt default) {rxvt}
  [end]
  (...)
[end]

根菜单定义由[begin]标签开始,接着是菜单名,放在圆括号里,相应地以[end]标签结束。所有的菜单命令(在这里叫做标签)都包含在方括号内,菜单名包含在圆括号内,实际的命令包含在大括号内。注释在文件里是允许的,由#开始的行就是。

如上例所示,第一个[exec]行定义了一个名为"XTerm White on Black"的新菜单项。菜单项将会像从命令行里运行一样运行xterm -ls -fg white -bg black。下一个是用[submenu]标签定义的子菜单,接着是子菜单名"More terminals",还有两个[exec]命令。任何子菜单都必须有相应的[end]标签。

还有其他菜单命令可以用在你的~/.fluxbox/menu文件里。请查阅官方文档获取更多可用的在线信息。

资源

  • Fluxbox wiki
  • irc.freenode.net上的Fluxbox开发者和用户频道是#fluxbox

概要

恭喜!Fluxbox现在已经安装,配置好,可以投入使用了。有任何问题或者建议,请给作者发邮件到Gentoo的Bugzilla报告bug。



打印

更新于2010年 6月 5日

本翻译的原始版本已经不再被维护

总结: 这份指南展示了如何设置X11上的Fluxbox窗口管理器。

Jonathan Smith
作者

Alin Dobre
编辑

Joshua Saddler
编辑

Jim Ramsay
贡献

黄曦
译者

Le Zhang
审校

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.