窗口管理器 Openbox 入门指南 (4)

说明:本系列文章仍在撰写中,尚未最终完成,请大家暂时不要转载。待完成后,我会出一个 PDF 版本,方便大家阅读。

目录表

控制应用程序

记得我们曾经在介绍如何将终端窗口嵌入桌面时,使用过一个名叫 Devil's Pie 的窗口匹配工具。其实,Openbox 就具有类似的功能。通过 Openbox,我们可以控制每一个应用程序的初始状态。比如,URxvt 启动后就没有边框,Gvim 启动后直接放置到第二个桌面,等等。

跟键盘绑定和鼠标绑定一样,控制应用程序的设置也位于 rc.xml 文件中。应用程序的设置使用 <applications> 标签定义:

<applications>
...
</applications>

具体到一个单独的应用程序,则使用 <application> 标签,该标签具有 name、class 及 role 属性:

  • name:窗口名称,用来指定一个确定的窗口。
  • class:窗口类名,其作用同上。
  • role:可选属性,对窗口作进一步的匹配,比如可用来区分是针对窗口还是针对对话框进行控制。

其中,name 属性和 class 属性可以仅使用其一,也可同时使用。

举例如下:


<applications>
 <application name="" class="" role="">
 ...
 </application>
 ...
</applications>

获取 name 和 class

当我们针对应用程序进行设置时,首先需要获取该程序的 name 或 class。这可以通过执行下面的命令来完成:

xprop WM_CLASS

该命令执行后,鼠标指针将变成十字型,然后在程序窗口中单击即可。例如,单击 Gvim 获得的结果如下:

WM_CLASS(STRING) = "gvim", "Gvim"

这说明,该窗口的 name 为 gvim,class 为 Gvim。

实例一:让 Gvim 启动后直接放置到第二个桌面

可定义如下:


<application name="gvim">
 <desktop>2</desktop>
</application>

实例二:去掉 URxvt 的窗口边框

作下面的定义:


<application name="urxvt">
 <decor>no</decor>
</application>

实例三:让 Mirage 启动后窗口最大化

可定义为:


<application name="mirage">
 <maximized>true</maximized>
</application>

使用通配符

Openbox 在匹配窗口的 name、class 及 role 时,可以使用通配符 * 和 ?。其中,* 用来匹配任意多个字符,而 ? 仅能匹配单个字符。例如:


<application name="*">
 <decor>no</decor>
</application>

这样就去掉了所有窗口的边框。

上面的例子仅作抛砖引玉之用。其实,通过 Openbox 这项特性,你还可以设置窗口的位置、是否最小化、全屏显示等诸多属性。在 rc.xml 文件的 applications 部分有详细的说明,大家只要照做即可。

[待续]

版权声明: 允许非商业性转载,但转载时必须标明作者及原文链接.
本文网址: http://linuxtoy.org/archives/openbox-getting-started-guide-4.html

14 Comments

  1. 1 max Commented @ 2008-08-04 9:46 am

    还是用我的fvwm吧

  2. 2 TTG Commented @ 2008-08-04 10:32 am

    汗一个,什么都要自己写啊。

  3. 3 这家伙是谁 Commented @ 2008-08-04 10:40 am

    太好了!

  4. 4 恶臭的(fetid) Commented @ 2008-08-04 10:40 am

    @TTG
    nod

  5. 5 sendney Commented @ 2008-08-04 10:59 am

    fvwm不错啊!!!!

  6. 6 zerg Commented @ 2008-08-04 11:13 am

    sorry,我期待pdf下载再仔细看,这么多人喜欢fvwm,我也是,openbox没有用过,实施看先:)

  7. 7 恶臭的(fetid) Commented @ 2008-08-04 11:37 am

    -fvwm

  8. 8 fireflyoo Commented @ 2008-08-04 11:50 am

    现在俺改用xfce4了。。

  9. 9 Gundamdriver Commented @ 2008-08-04 1:40 pm

    @TTG:
    在Debian安裝Fluxbox時應該會有範本,我想OpenBox也應該有吧。

  10. 10 wanzigunzi Commented @ 2008-08-04 2:07 pm

    去掉边框似乎应该是 no ?

  11. 11 Toy Commented @ 2008-08-04 3:15 pm

    @wanzigunzi: 谢谢,已更正。

  12. 12 希罗 Commented @ 2008-08-04 4:21 pm

    自定义太多的动作,是不是有点令人难以适应呢?
    一般这些动作都不会强迫给别人的。

    :-)

  13. 13 oceanboo Commented @ 2008-08-05 9:38 am

    就是这个功能,哈哈。

  14. 14 david Commented @ 2008-08-05 11:45 am

    还有多少啊,太喜欢这个了,快出PDF啊