Openbox窗口管理器(二)
本篇主要随接上一篇,虽然上一篇介绍了几个GUI的openbox配置工具,不过出于linux 一切皆由文件构成的理念,这里还是介绍一下通过文件修改来配置openbox窗口的方法。
一、配置菜单
1、配置文件
Openbox 默认的菜单文件 (系统级) 位于:/etc/xdg/openbox/menu.xml
当你在桌面右击鼠标时,将显示 Openbox 的 Root 菜单。通过此菜单,用户可以执行启动应用程序、注销、退出等操作。当然,如果不想直接修改系统级文件,也可以在用户家目录下新建一个文件,然后通过配置该文件达到自定义用户菜单的目的。
1mkdir ~/.config/openbox
2cp /etc/xdg/openbox/menu.xml ~/.config/openbox/
2、一级菜单
openbox的菜单是能过menu标签进行配置的,该标签具有 id、label、以及 exehttp://www.361way.com/wp-admin/post-new.phpcute 属性:
- id:每一个菜单项目都必须指定一个唯一的 id,以用来区分其他菜单项目。
- label:用来描述一个菜单的名称。
- execute:执行一个命令,常用于创建动态菜单。
如:我们可以将 Openbox 的 Root 菜单定义如下:
菜单下的项目可能过action和command标签进行配置。具体示例如下:
1<item label="Terminal">
2 <action name="Execute">
3 <command>
4 terminator
5 </command>
6 </action>
7</item>
这里定义了一个终端项目,并对其action和command进行了定义,即定义了其要执行的动作。不过需要的注意的是这里有几个特殊的项目菜单:
- 分隔线:可以使用 标签在菜单项目间绘制一条分隔线。 标签同样具有 label 属性。需要注意的是,因为 标签没有具体的内容,所以在关闭该标签时,应照下面的方式进行: 这是另一个例子,包含 label 属性:
- 重新配置 Openbox:使用该菜单项目的好处是,当你对 Openbox 的配置文件进行修改后,不必注销系统便可即时生效。该菜单项目定义如下:
1<item label="Reconfigure">
2 <action name="Reconfigure" />
3</item>
注意,这里
重新启动 Openbox:
1<item label="Restart">
2 <action name="Restart" />
3</item>
退出 Openbox:
1<item label="Exit">
2 <action name="Exit" />
3</item>
注销会话:
1<item label="Session Logout">
2 <action name="SessionLogout" />
3</item>
注意,需要启动带会话支持的 Openbox 才有效。
3、二级菜单
二级菜单同一级菜单配置上并没有区别,定义了一个多媒体菜单,其下面也可以配置多个item,最终将该menu同一级menu合并就构成了openbox的右键下的菜单部分。
二、键鼠绑定
1、配置文件
Openbox 默认的键盘和鼠标绑定文件位于:/etc/xdg/openbox/rc.xml
,同样也可以复制一份到 .config/openbox/:cp /etc/xdg/openbox/rc.xml ~/.config/openbox/
达到针对不同的用户进行自定义配置的目的。
2、键盘绑定
Openbox 的键盘绑定使用
1 <keyboard>
2...
3</keyboard>
要定义一个具体的键盘绑定,我们需要使用
- S - Shift
- C - Ctrl
- A - Alt
- W - Win (即 Windows 徽标键)
例如,假设我要为最大化窗口指定快捷键为 Alt-F6,那么,可以定义如下:
1<keyboard>
2 <keybind key="A-F6">
3 <action name="MaximizeFull" />
4 </keybind>
5 ...
6</keyboard>
其实,Openbox 已经默认定义了很多键盘绑定,如切换活动桌面、提升窗口等等,具体内容都可以在上面的 rc.xml 文件中找到。至于在我们前面的菜单创建过程中、键盘绑定中、以及后面的鼠标绑定中所用的 Action,可以通过下面的地址参考:http://openbox.org/wiki/Help:Actions
3、鼠标绑定
鼠标绑定使用
1<mouse>
2...
3</mouse>
与键盘绑定不同的是,鼠标绑定会要求你首先设置情景,也就是触发鼠标绑定的对象,即 标签。常用的 Context 如下表所示:
名称 | 说明 |
---|---|
Frame | 除桌面外的任何窗口 |
Client | 应用程序窗口,不含窗口边框 |
Desktop | 桌面 |
Root | 与 Desktop 相似,通常用于 Root 菜单 |
Titlebar | 窗口标题栏 |
Top, Bottom, Left, Right | 窗口的上、下、左、右四边 |
TLCorner, TRCorner, BLCorner, BRCorner | 窗口的四角 |
Icon | 窗口图标 |
Iconify | 最小化按钮 |
Maximize | 最大化按钮 |
Close | 关闭按钮 |
AllDesktops | 所有桌面按钮 |
Shade | 折叠按钮 |
MoveResize | 移动并调整窗口大小 |
Titlebar 说明这是针对标题栏的鼠标操作。然后,即可使用
- button:该属性指定使用哪一个鼠标按钮来触发鼠标绑定,如左键、右键、滚轮等。
键值 | 说明 |
---|---|
Left | 鼠标左键 |
Right | 鼠标右键 |
Middle | 鼠标中键 |
UP | 向上滚 |
Down | 向下滚 |
- action:用来指定一个鼠标触发的事件,如按下、单击、双击等。一些常见的 Action 事件如下表所示:
键值 | 说明 |
---|---|
Press | 按下 |
Click | 单击 |
DoubleClick | 双击 |
Release | 释放 |
Drag | 拖曳 |
例如,当我们双击一个窗口时让其最大化,可以作如下定义:
1<mouse>
2 <context name="Titlebar">
3 <mousebind button="Left" action="DoubleClick">
4 <action name="ToggleMaximizeFull"/>
5 </mousebind>
6 </context>
7</mouse>
三、应用程序控制
1、配置文件
跟键盘绑定和鼠标绑定一样,控制应用程序的设置也位于 rc.xml 文件中。应用程序的设置使用 <applications>
标签定义:
1<applications>
2...
3</applications>
具体到一个单独的应用程序,则使用 <application>
标签,该标签具有 name、class 及 role 属性:
- name:窗口名称,用来指定一个确定的窗口。
- class:窗口类名,其作用同上。
- role:可选属性,对窗口作进一步的匹配,比如可用来区分是针对窗口还是针对对话框进行控制。
其中,name 属性和 class 属性可以仅使用其一,也可同时使用。如下是gvim程序的配置:
1<application name="gmessage">
2 <decor>no</decor>
3 <shade>no</shade>
4 <skip_pager>yes</skip_pager>
5 <skip_taskbar>yes</skip_taskbar>
6 <fullscreen>no</fullscreen>
7 <maximized>no</maximized>
8 </application>
9 <application class="Gimp" name="gimp" role="gimp-toolbox" type="utility">
10 <maximized>vertical</maximized>
11 </application>
12 <application class="Gimp" name="gimp" role="gimp-dock" type="utility">
13 <maximized>vertical</maximized>
14 </application>
15 <application class="Gimp" name="gimp" role="gimp-image-window" type="normal">
16 <position force="no">
17 <x>center</x>
18 <y>center</y>
19 </position>
20 </application>
21 <application class="Gimp" name="gimp-2.8" role="gimp-toolbox" type="utility">
22 <maximized>vertical</maximized>
23 </application>
24 <application class="Gimp" name="gimp-2.8" role="gimp-dock" type="utility">
25 <maximized>vertical</maximized>
26 </application>
27 <application class="Gimp" name="gimp-2.8" role="gimp-image-window" type="normal">
28 <position force="no">
29 <x>center</x>
30 <y>center</y>
31 </position>
32 </application>
2、name和class属性及其他
当我们针对应用程序进行设置时,首先需要获取该程序的 name 或 class。这可以通过执行xprop WM_CLASS命令来完成, 该命令执行后,鼠标指针将变成十字型,然后在程序窗口中单击即可。例如,单击 Gvim 获得的结果如下:
1WM_CLASS(STRING) = "gvim", "Gvim"
这说明,该窗口的 name 为 gvim,class 为 Gvim。
如上面提到的gimp中的例子,这里有很多项可以配置,这里提下几个经常会用到的参数:<desktop>2</desktop>
,该参数指定了程序启动后,默认在几号桌面里启动;
该参数说明程序启动后没有边框;
该参数说明程序启动后程序最大化。
需要注意的是:Openbox 在匹配窗口的 name、class 及 role 时,可以使用通配符 * 和 ?。其中,* 用来匹配任意多个字符,而 ? 仅能匹配单个字符。例如:
1<application name="*">
2 <decor>no</decor>
3</application>
这样所有的程序启动时都没有边框,这是比较强大的。
四、自启动及常用配置
通过 Openbox 的自动启动脚本,我们可以随机启动一些程序,像输入法、面板等等。其配置文件位于/etc/xdg/openbox/autostart
,如增加firefox & ,即默认开机启动firefox 。而其他一些会用到的一些配置部分如下:
不用敲 startx 直接进入 Openbox
在没有使用图形化登录管理器的情况下,要进入 Openbox,我们需要敲 startx。如果使用 bash 的话,在 ~/.bash_profile 中加入下列内容,可以免敲 startx:
1if [[ -z "$DISPLAY" ]] && [[ $(tty) = /dev/vc/1 ]]; then
2 startx
3 logout
4fi
设置壁纸
1feh --bg-scale /path/to/wallpaper.png
示例中的壁纸路径及名称需要换成你自己的。然后将:eval cat $HOME/.fehbg &
加入 Openbox 的 autostart.sh 文件。
设置 GTK 主题
不用使用任何工具,在 ~/.gtkrc-2.0 中加入:gtk-theme-name = “Infini-Herbe”
这将设置 GTK 程序的主题。将引号中的内容换成你自己喜欢的主题名称(下同)。
gtk-icon-theme-name = “ALLGREY”
设置所用的图标主题。gtk-cursor-theme-name = “Vanilla-DMZ-AA”
设置鼠标指针主题。gtk-font-name = “Luxi Sans 10”
设置 GTK 程序用的字体。gtk-toolbar-style = GTKTOOLBARICONS
设置工具栏样式,我喜欢只显示图标。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/openbox-windows-config-2/3151.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.