窗口管理器 Openbox 入门指南 (2) (original) (raw)
这是《窗口管理器 Openbox 入门指南》的第二部分。
目录表
配置 Openbox
当 Openbox 安装完成后,其默认的选项设置可能并不合你意。因此,你可以根据自己的使用习惯来对 Openbox 进行配置。要配置 Openbox,既可以采用图形化的工具,也可以直接编辑文件手动配置。
使用 ObConf
ObConf 是一个图形化的 Openbox 配置工具,可以完成一些基本的配置,包括:
- 安装、选用或打包 Openbox 主题
- 配置外观 (像窗口按钮布局、字体等) 及窗口行为
- 配置虚拟桌面及桌面边距
- 配置 Dock
可以使用以下指令来安装 ObConf。
在 Archlinux 中,可以执行:
Debian/Ubuntu 用户可以执行:
sudo apt-get install obconf
Fedora 用户可执行:
启动后的 ObConf 如下图所示:
鉴于 ObConf 的操作非常直观,在此就不赘述了。大家花点时间琢磨一下,很快就可以上手。
创建菜单
最直接配置 Openbox 的方式是手工编辑其配置文件。不过,在编辑之前,一些语法规则是需要我们掌握的。Openbox 默认的菜单文件 (系统级) 位于:
/etc/xdg/openbox/menu.xml
当你在桌面右击鼠标时,将显示 Openbox 的 Root 菜单。通过此菜单,用户可以执行启动应用程序、注销、退出等操作。
为了避免更新 Openbox 程序时该文件被覆盖,复制一份到:
mkdir ~/.config/openbox cp /etc/xdg/openbox/menu.xml ~/.config/openbox/
从 menu.xml 文件的扩展名我们可以看出这是一个 XML 文件。使用任何文本编辑器皆可打开该文件。除了文件首行的 XML 声明外,所有的 Openbox 菜单项目都是由 <openbox_menu>
标签所包围的。
- 一级菜单
首先,让我们来创建一个一级菜单。要定义一个菜单,我们需要使用<menu>
标签。该标签具有 id、label、以及 execute 属性:- id:每一个菜单项目都必须指定一个唯一的 id,以用来区分其他菜单项目。
- label:用来描述一个菜单的名称。
- execute:执行一个命令,常用于创建动态菜单。
例如,我们可以将 Openbox 的 Root 菜单定义如下:<menu id="root-menu" label="Openbox Root Menu"> ... </menu>
如果一个菜单中没有任何项目,我想是不能称其为真正的菜单吧。所以,我们还需要为菜单创建具体的菜单项目。要定义菜单项目,我们可以使用<item>
标签。与<menu>
标签一样,<item>
标签也具有描述菜单项目名称的 label 属性。我们试着扩展上面的例子: ... ... 现在,我们已经有了一个名为 URxvt 的菜单项目。根据该名称的命名初衷,我们当然希望通过该菜单项目能够启动 URxvt 终端程序。要完成这个任务,我们需要使用 `` 标签。该标签主要用来执行一个操作,比如启动程序。`` 标签具有 name 属性。我们继续扩展先前的例子: ... ... 该例中 name 属性已经包含了“Execute”值,其作用是启动一个程序。 我想,你已经猜到接下来我们需要做什么了。要启动程序,没有具体的命令是不行的。这可以通过 `` 标签来完成。我们仍以前面的例子来说明: urxvt ... 值得一提的是,命令可以附带路径或选项参数。
- 几个特殊的菜单项目
在此,我们介绍几个较为特殊的菜单项目:- 分隔线:可以使用
<separator>
标签在菜单项目间绘制一条分隔线。<separator>
标签同样具有 label 属性。需要注意的是,因为<separator>
标签没有具体的内容,所以在关闭该标签时,应照下面的方式进行:
这是另一个例子,包含 label 属性: - 重新配置 Openbox:使用该菜单项目的好处是,当你对 Openbox 的配置文件进行修改后,不必注销系统便可即时生效。该菜单项目定义如下: 注意,这里 `` 标签的关闭方式与 `` 一样。
- 重新启动 Openbox:
- 退出 Openbox:
- 注销会话: 注意,需要启动带会话支持的 Openbox 才有效。
- 分隔线:可以使用
- 二级菜单
掌握了创建一级菜单的方法,二级菜单则如法炮制即可。当二级菜单创建完毕之后,可按以下方法加入一级菜单:
附:我的 menu.xml 文件,仅供参考。
# Tagged as guide, openbox, wm · Edit on GitHub