Openbox

出自 ArchWiki

Openbox 是一个轻量级、强大且高度可配置的堆叠式 窗口管理器,具有广泛的标准支持。它可以构建在其上并独立运行,作为独特的桌面环境的基础,或者在其他集成的桌面环境(例如 KDEXfce)中作为它们提供的窗口管理器的替代品。LXDE 桌面环境本身就是围绕 Openbox 构建的。

安装

安装 openbox 软件包。 另请安装 TTF 字体,例如 ttf-dejavuttf-liberation

启动

独立运行

使用 xinit 运行 openboxopenbox-session。 请注意,只有 openbox-session 提供 自动启动

注意: 执行 openbox-session 后,只会显示一个空白的灰色屏幕。 尝试移动鼠标并右键单击以获取 openbox 菜单,以确保它实际上正在工作。

其他桌面环境

注意
  • 当使用 Openbox 替换 桌面环境 的原生窗口管理器时,请记住 Openbox 不提供任何合成效果(例如透明度)。 请参阅 #合成效果
  • Openbox 可以与 GNOME 应用程序一起工作(但请参阅 GTK#客户端装饰)。 [1]

请参阅 桌面环境#使用不同的窗口管理器

配置

注意: 本地配置文件将始终覆盖全局等效文件。

四个关键文件构成了 openbox 配置的基础,每个文件都服务于独特的作用。 它们是:rc.xmlmenu.xmlautostartenvironment。 尽管以下将更详细地讨论这些文件,但要开始配置 Openbox,首先需要基于它们创建本地 Openbox 配置文件(即,针对您的特定用户帐户)。 这可以通过从全局 /etc/xdg/openbox 配置文件(适用于任何和所有用户)复制它们作为模板来完成

$ mkdir -p ~/.config/openbox
$ cp -a /etc/xdg/openbox ~/.config/

rc.xml

提示: 自定义键盘快捷键(快捷键绑定)必须添加到此文件的 <keyboard> 部分,并在 <!-- Keybindings for running aplications --> 标题下。

~/.config/openbox/rc.xml 是主配置文件,负责确定整个会话的行为和设置,包括

  • 键盘快捷键(例如,启动应用程序;控制音量)
  • 主题
  • 桌面和虚拟桌面设置,以及
  • 应用程序窗口设置

此文件也已预配置,这意味着只需修改现有内容即可自定义行为以适应个人偏好。

注意: 每个应用程序的设置(与每个监视器上应用程序的固定位置有关)仅在 x 和 y 位置也已定义的情况下才有效。

menu.xml

~/.config/openbox/menu.xml 定义了桌面菜单的类型和行为,可以通过右键单击背景来访问。 尽管默认提供的是静态菜单(意味着它在新应用程序安装时不会自动更新),但也可以使用动态菜单,它也会自动更新。

以下 #菜单 部分广泛讨论了可用选项。

自动启动

openbox-session 提供了两种自动启动机制:XDG 自动启动(仅在安装了 python-pyxdg 的情况下才有效)和 Openbox 自己的自动启动机制

Openbox 自己的自动启动机制

  • 读取 /etc/xdg/openbox/environment
  • 读取 ~/.config/openbox/environment
  • 运行 /etc/xdg/openbox/autostart
  • 运行 ~/.config/openbox/autostart

通过添加少量延迟,通常可以解决 ~/.config/openbox/autostart 中的命令执行顺序错误(或完全跳过)的问题。 例如

xset -b
(sleep 3s && nm-applet) &
(sleep 3s && conky) &
注意: 某些应用程序依赖于 Polkit 身份验证框架,并且需要 Polkit 代理。

在独立的 Openbox 会话中,可以从 Openbox 自动启动中启动 Polkit 身份验证代理,例如 polkit-gnome 提供的代理。 例如

(sleep 3s && /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1) &

environment

~/.config/openbox/environment 可用于导出和设置相关的环境变量,例如

  • 定义新的路径(例如,执行原本需要列出完整路径的命令)
  • 更改语言设置,以及
  • 定义要使用的其他变量(例如,GTK 主题的修复程序可以列在此处)

主题

安装 obconf 和/或 lxappearance-obconf 以使用 GUI 配置视觉设置和主题。

openbox-themesAUR 软件包或 AUR 中提供了大量主题选择。 一些 GTK 主题 也附带 Openbox 主题。 Openbox 特定的和 Openbox 兼容的主题都将安装到 /usr/share/themes 目录,并将立即可供选择。

box-look.org 是一个优秀且历史悠久的主题来源。 deviantART.com 是另一个优秀的资源。 可以在网上找到更多。

编辑或创建

提示: 最好将主题复制到您的主目录,而不是编辑 /usr/share/themes/ 中的主题。 这将保留原始主题,以防出现任何问题,并确保您的更改不会在更新时被覆盖。

官方 openbox.org 网站广泛介绍了创建新主题或修改现有主题的过程。 obthemeAUR 是一个用户友好的 GUI,用于执行此操作。

GUI 配置

有几个 GUI 应用程序可用于快速轻松地配置您的 Openbox 桌面。

  • ObConf — 一个基于 GTK3 的 Openbox 窗口管理器配置工具。
https://openbox.org/obconf || obconf
  • LXAppearance ObConf — 用于配置 Openbox 的 LXAppearance 插件。 请注意,并非所有配置 Openbox 的选项都在此插件中可用,因此您可能仍然需要安装 obconf。
https://lxde.org || lxappearance-obconf
  • LXInput — LXDE 键盘和鼠标配置
https://lxde.org || lxinput
  • LXRandR — LXDE 显示器配置。
https://lxde.org || lxrandr
  • obkey — 配置 Openbox 键盘快捷键
https://code.google.com/p/obkey/ || obkeyAUR

与 Openbox 桌面菜单配置相关的程序和应用程序在 #菜单 中讨论。

Openbox 重新配置

提示: 如果尚未存在,则值得将此命令添加到菜单和/或作为快捷键绑定以方便使用。

Openbox 并非总是自动反映在会话中对其配置文件所做的任何更改。 因此,在编辑配置文件后,必须手动重新加载这些文件。 为此,请输入以下命令

$ openbox --reconfigure

如果打算将此命令作为快捷键添加到 ~/.config/openbox/rc.xml,则只需将命令列为 reconfigure 即可。 下面提供了一个示例,使用 Super+F11 快捷键绑定

<keybind key="W-F11">
  <action name="Reconfigure"/>
</keybind>

键盘快捷键

所有快捷键绑定都必须添加到 ~/.config/openbox/rc.xml 文件中,并在 <!-- Keybindings for running aplications --> 标题下方。 尽管此处提供了简要概述,但有关快捷键绑定的更深入解释可以在 openbox.org 上找到。

可以使用以下语法将快捷键绑定添加到配置文件中

<keybind key="my-key-combination">
  <action name="my-action">
    ...
  </action>
</keybind>

运行外部命令的操作名称是Execute。 使用以下语法定义要执行的外部命令

<action name="Execute">
  <command>my-command</command>
</action>

有关所有可用操作的列表,请参阅 Openbox wiki

提示: obkeyAUR 实用程序提供了一个图形界面,用于配置快捷键绑定。 在使用 obkey 之前,您应该使用 obconf 创建 ~/.config/openbox/rc.xml

虽然使用标准字母数字键进行快捷键绑定是不言自明的,但特殊名称分配给其他类型的键,例如 modifiersmultimedianavigation

修饰键

Modifier 键在快捷键绑定中起着重要作用(例如,按住 ShiftCtrl 键并结合另一个键来执行操作)。 使用修饰键有助于防止快捷键绑定冲突,即两个或多个操作链接到相同的键或键组合。 将修饰键与另一个键一起使用的语法是

"<modifier>-<key>"

修饰键代码如下

  • S:Shift
  • C:Control
  • A:Alt
  • W:Super
  • M:Meta
  • H:Hyper(如果它绑定到某些内容)

多媒体键

在可用的情况下,可以设置适当的 multimedia 键来执行其预期功能,例如控制音量和/或屏幕亮度。 这些通常会集成到 function 键中,并通过其适当的符号进行标识。 有关详细信息,请参阅 键盘输入

音量和亮度多媒体代码如下(请注意,仍然必须为它们分配命令才能实际发挥作用)

  • XF86AudioRaiseVolume:增大音量
  • XF86AudioLowerVolume:减小音量
  • XF86AudioMute:静音/取消静音
  • XF86MonBrightnessUp:增加屏幕亮度
  • XF86MonBrightnessDown:降低屏幕亮度

有关 XF86 多媒体键的完整列表,请参阅 LQWiki:XF86 键盘符号

音量控制

应使用哪些命令来控制音量将取决于是否使用 ALSAPulseAudioOSS 来进行声音。

导航键

这些是方向/箭头键,通常用于向上、向下、向左或向右移动光标。 (不言自明的)导航代码如下

  • Up:向上
  • Down:向下
  • Left:向左
  • Right:向右

菜单

可以在 Openbox 中使用三种类型的菜单:staticpipes(动态)和 generators(静态或动态)。 它们也可以单独使用或以任意组合使用。

静态菜单

顾名思义,这种默认类型的菜单不会以任何方式更改,并且可以通过手动编辑和/或(重新)自动生成,通过使用适当的软件包。

快速高效,虽然这种类型的菜单可用于选择应用程序,但它也可用于访问特定功能和/或执行特定任务(例如,桌面配置),将应用程序的访问留给另一个进程(例如 synapsexfce4-appfinder 应用程序)。

~/.config/openbox/menu.xml 文件将是静态桌面菜单内容的唯一来源。

menumaker

menumaker 自动为多个窗口管理器生成 xml 菜单,包括 Openbox、FluxboxIceWMXfce。 它将搜索所有已安装的可执行程序,并因此为它们创建一个菜单文件。 如果需要,还可以配置 MenuMaker 以排除某些应用程序类型(例如,与 GNOMEKDE 相关)。

安装并执行后,它将自动生成一个新的 ~/.config/openbox/menu.xml 文件。 为避免覆盖现有文件,请输入

$ mmaker -v OpenBox3

否则,要覆盖现有文件,请添加 force 参数 (f)

$ mmaker -vf OpenBox3

一旦生成新的 ~/.config/openbox/menu.xml 文件,就可以手动编辑,或使用 GUI 菜单编辑器(例如 obmenuAUR)进行配置。

obmenu

注意: obm-xdg - 用于生成 GTKGNOME 应用程序列表的管道菜单 - 也随 obmenu 一起提供。 但是,它存在长期存在的错误,可能会产生无效的输出,甚至根本无法运行。 因此,已将其从讨论中省略。

obmenuAUR 是一个“用户友好”的 GUI 应用程序,用于编辑 ~/.config/openbox/menu.xml,而无需在 xml 中编码。

xdg-menu

archlinux-xdg-menu 将根据 /etc/xdg/ 目录中包含的 xdg 文件,自动为包括 Openbox 在内的多个窗口管理器生成菜单。 有关更多信息,请查看 Xdg-menu#OpenBox 文章。

注销菜单选项

提示: 提供的命令也可以附加到 快捷键绑定

可以编辑 ~/.config/openbox/menu.xml 文件,以提供一个子菜单,其中包含与 oblogout 提供的选项相同的选项。 以下示例脚本将提供所有这些选项,但锁定屏幕的功能除外

<menu id="exit-menu" label="Exit">
	<item label="Log Out">
		<action name="Execute">
			<command>openbox --exit</command>
		</action>
	</item>
	<item label="Shutdown">
		<action name="Execute">
			<command>systemctl poweroff</command>
		</action>
	</item>
	<item label="Restart">
		<action name="Execute">
		        <command>systemctl reboot</command>
		</action>
	</item>
	<item label="Suspend">
		<action name="Execute">
		        <command>systemctl suspend</command>
		</action>
	</item>
	<item label="Hibernate">
		<action name="Execute">
		        <command>systemctl hibernate</command>
		</action>
	</item>
</menu>

条目编写完成后,添加以下行以在主桌面菜单中所需的位置呈现子菜单(通常作为最后一个条目)

<menu id="exit-menu"/>

管道菜单

提示: 静态菜单完全可以包含一个或多个管道子菜单。 某些管道菜单的功能也可能依赖于相关软件包的安装。

这种类型的菜单本质上是一个脚本,它在运行时动态提供刷新的列表。 这些列表可用于多种目的,包括列出应用程序、提供信息以及提供控制功能。 可以安装预配置的管道菜单,但不能从 官方软件仓库 安装。 更有经验的用户也可以修改和/或创建自己的自定义脚本。 同样,~/.config/openbox/menu.xml 可能并且通常会包含多个管道菜单。

示例

Openbox.org 还提供了更多管道菜单列表。

生成器

这种类型的菜单类似于 XfceLXDE 等桌面环境的任务栏提供的菜单。 这种类型的菜单会自动实时更新,功能强大且非常方便。 还可以添加自定义类别和菜单项; 阅读您要使用的动态菜单的文档,以确定是否以及如何执行此操作。

必须从 ~/.config/openbox/menu.xml 文件执行菜单生成器。

obmenu-generator

提示: 即使在 ~/.config/openbox/rc.xml 中启用了图标,仍然可以在 obmenu-generatorAUR 中禁用图标。

obmenu-generatorAUR 强烈推荐,尽管它是一个非官方软件包。 它可以用作静态或动态菜单,高度可配置、功能强大且用途广泛。 菜单类别和单个条目也可以轻松隐藏、自定义和/或添加。 官方主页 提供了更多信息和屏幕截图。

以下是如何在不使用图标的情况下动态执行 obmenu-generator 的示例,位于 ~/.config/openbox/menu.xml

<?xml version="1.0" encoding="utf-8"?>
<openbox_menu>
    <menu id="root-menu" label="OpenBox 3" execute="/usr/bin/obmenu-generator">
    </menu>
</openbox_menu>

要自动图标化条目,将添加 -i 选项

<menu id="root-menu" label="OpenBox 3" execute="/usr/bin/obmenu-generator -i">

openbox-menu

提示: 如果此菜单产生错误,则可以通过在 ~/.config/openbox/rc.xml 中启用图标来解决。

openbox-menuAUR 使用 LXDE menu-cache 来创建动态菜单。 官方主页 提供了更多信息和屏幕截图。

菜单图标

要在菜单项旁边显示图标,需要确保在 ~/.config/openbox/rc.xml 文件的 <menu> 部分中启用它们

<showIcons>yes</showIcons>

如果使用静态菜单,则需要编辑 ~/.config/openbox/menu.xml 文件以提供 icon = 命令,以及每个条目的完整路径和图标名称。 以下是用于为类别提供图标的语法示例

<menu id="apps-menu" label="[label name]" icon="[pathway to icon]/[icon name]">

如果您在菜单中显示图标时遇到问题,请尝试将它们转换为 .png

将桌面菜单作为面板菜单

提示: XDoTool 可以模拟任何操作的任何快捷键绑定,因此,它也可以用于许多其他目的……

xdotool 是一个软件包,可以发出命令来模拟按键/快捷键绑定,这意味着可以使用它来调用与快捷键绑定相关的操作,而无需实际按下其分配的键。 由于这包括调用为 Openbox 桌面菜单分配的快捷键绑定的能力,因此可以使用 XDoTool 将 Openbox 桌面菜单转换为面板菜单。 特别是当桌面菜单经过大量自定义且功能丰富时,这可能非常有用,可以

  • 替换现有面板菜单
  • 在原本未提供或不可能提供面板菜单的情况下实施面板菜单(例如,对于 Tint2
  • 在使用像 xfdesktop 这样的应用程序来管理 桌面 时,补偿丢失对桌面菜单的访问权限的情况。

一旦安装了 XDoTool(如果尚未安装),就需要创建一个快捷键绑定以访问 ~/.config/openbox/rc.xml 中的根菜单,并再次在 <!-- Keybindings for running aplications --> 标题下方。 例如,以下代码将通过按 Ctrl+m 调出菜单

<keybind key="C-m">
    <action name="ShowMenu">
       <menu>root-menu</menu>
    </action>
</keybind>

然后必须 重新配置 Openbox。 在这种情况下,XDoTool 将用于模拟 Ctrl+m 按键以使用以下命令访问桌面菜单(请注意使用 + 代替 -

xdotool key control+m

此命令如何用作面板启动器/图标,在很大程度上取决于所用面板的功能。虽然某些面板允许在创建新启动器的过程中直接执行上述命令,但其他面板可能需要使用可执行脚本。例如,一个名为 obpanelmenu.sh 的自定义可执行脚本将 ~/.config 目录中创建,并将适当的 XDoTool 命令添加到文件中(在此示例中模拟 Ctrl+m 按键)

~/.config/obpanelmenu.sh
xdotool key control+m

文件保存并关闭后,可以将其制作为可执行脚本。

执行它将调出 Openbox 桌面菜单。因此,如果使用的面板支持拖放功能来添加新启动器,只需将可执行脚本拖到面板上,然后再更改图标以适合个人喜好即可。

XDG 兼容菜单

XDG 兼容菜单基于 freedesktop.org 标准。该菜单在位于 /etc/xdg/menus 中的菜单文件中定义。新应用程序将自动出现在菜单中。

示例

archlinux-menusAUR 软件包提供了一个 Arch Linux 特定的 XDG 兼容菜单。

提示和技巧

光标和图标主题

详情请参阅 光标主题图标

桌面图标和壁纸

Openbox 本身不支持使用桌面图标或壁纸。

请参阅 PCManFMSpaceFMIdesk

注意: 您可能需要编辑 ~/.conkyrc 并将 own_window_type 设置为 normal

请参阅 应用程序列表/其他#壁纸设置器

合成效果

Openbox 本身不提供对 合成 的原生支持,因此需要为此目的使用外部合成器。

虽然合成不是必需的组件,但它可以专门避免诸如使用 oblogout 时的屏幕失真以及终端窗口透明度的视觉故障等问题。有关常见选择,请参阅 Xorg#合成管理器列表

oblogout

请参阅 Oblogout 文章,以概述如何使用这个有用的图形化注销脚本。

使用热键启动复杂命令

如果您需要执行复杂命令,请使用 shell 功能。

在编写自己的脚本时,请确保转义 XML 特殊字符,例如 "&" ("&amp;")、"<" ("&lt;")、">" ("&gt;") 和其他字符(更多信息请参阅 XML 中的预定义实体)。

此示例将立即关闭显示器并使用 slock 锁定屏幕。它取自此线程

 <keybind key="W-l">
   <action name="Execute">
     <command>sh -c 'slock &amp; (sleep .5 &amp;&amp; xset dpms force off)'</command>
   </action>
 </keybind>

有时需要为应用程序指定环境变量

 <keybind key="A-F7">
   <action name="Execute">
     <command>sh -c "LC_ALL=C.UTF-8 obconf"</command>
   </action>
 </keybind>

另一个示例将启动应用程序,并将所有 stdout 和 stderr 输出保存到文件

 <keybind key="A-f">
   <action name="Execute">
     <command>sh -c sh -c "exec gimp &gt;/tmp/gimp.out 2&gt;&amp;1"</command>
   </action>
 </keybind>

启用屏幕截图

 <keybind key="Print">
   <action name="Execute">
     <command>gnome-screenshot --clipboard</command>
   </action>
 </keybind>
 <keybind key="A-Print">
   <action name="Execute">
     <command>gnome-screenshot --clipboard --window</command>
   </action>
 </keybind>
 <keybind key="W-Print">
   <action name="Execute">
     <command>gnome-screenshot --interactive</command>
   </action>
 </keybind>

应用程序启动器

考虑到纯 Openbox 安装缺少桌面环境,安装一个或多个应用程序启动器作为 Openbox 菜单系统和热键的补充可能很有用。此类启动器的列表可以在 Category:应用程序启动器应用程序列表/其他#应用程序启动器 中找到;流行的示例包括 Gmrundmenu

使用鼠标切换桌面

可以通过将鼠标光标移动到屏幕边缘来切换桌面。首先安装 xdotool 并将以下两行添加到您的 ~/.xinitrc

xdotool behave_screen_edge --delay 500 left set_desktop --relative -- -1 &
xdotool behave_screen_edge --delay 500 right set_desktop --relative -- +1 &

设置默认应用程序 / 文件关联

请参阅 默认应用程序 文章。

临时窗口透明

警告: 如果在操作组中定义了其他操作,则此方法可能不起作用。

程序 transset-dfAUR 可以即时启用窗口透明。

例如,在 ~/.config/openbox/rc.xml 文件的 <mouse> 部分中使用以下代码,将可以通过将鼠标指针悬停在标题栏上并使用鼠标中键滚动来控制应用程序窗口的透明度

<context name="Titlebar">
    ...
    <mousebind button="Up" action="Click">
        <action name= "Execute" >
        <execute>transset-df --point .2 --inc  </execute>
        </action>
    </mousebind>
    <mousebind button="Down" action="Click">
        <action name= "Execute" >
        <execute>transset-df --point .2 --dec </execute>
        </action>
    </mousebind>
    ...
</context>

使用 obxprop 进行更快的配置

openbox 软件包提供了一个 obxprop 二进制文件,可以解析 rc.xml 中应用程序设置的相关值。官方建议使用 obxprop | grep "^_OB_APP" 来完成此任务。通过运行显示的命令开始此过程,然后单击一个窗口以在终端中查看其属性。

应用程序的 Xprop 值

xorg-xprop 可用于中继所选应用程序的属性值。在经常使用按应用程序设置的情况下,以下 Bash 别名 可能会很有用

alias xp='xprop | grep "WM_WINDOW_ROLE\|WM_CLASS" && echo "WM_CLASS(STRING) = \"NAME\", \"CLASS\""'

要使用 Xorg-XProp,请使用给定的别名 xp 运行,然后单击要使用按应用程序设置定义的活动程序。显示的结果将仅是 Openbox 本身需要的信息,即 WM_WINDOW_ROLEWM_CLASS(名称和类)值

WM_WINDOW_ROLE(STRING) = "roster"
WM_CLASS(STRING) = "gajim.py", "Gajim.py"
WM_CLASS(STRING) = "NAME", "CLASS"

在键盘布局之间切换

有关说明,请参阅文章部分 在键盘布局之间切换

为虚拟桌面设置网格布局

安装 obsetlayoutAUR。例如,要设置 2x2 网格

obsetlayout 0 2 2 0

不带参数运行它以了解参数的含义。

启用热角

lead-gitAUR 为 openbox 和其他轻量级窗口管理器提供热角。使用 autostart 文件中的条目启动应用程序

lead &

可以在配置文件 ~/.config/lead/lead.conf 中编辑命令(将 eDP1 替换为您的屏幕输出名称,您可以使用 xrandr 找到该名称)

[eDP1]
bottom=
bottomLeft=chromium
bottomRight=thunar
left=
right=
top=
topLeft=mlde.californium toggle
topRight=skippy-xd

有关更多信息,请参阅 [2]

窗口贴靠

许多桌面环境和窗口管理器都支持窗口贴靠(例如 Windows 7 Aero snap),当窗口移动到屏幕边缘时,它们会自动贴靠到位。这种效果也可以通过在 Openbox 中对焦点窗口使用 按键绑定 来模拟。

如下例所示,必须使用百分比来确定窗口大小(更多信息请参阅 openbox.org)。在本例中,super 键与 navigation 键结合使用

<keybind key="W-Left">
  <action name="UnmaximizeFull"/>
  <action name="MaximizeVert"/>
  <action name="Raise"/>
  <action name="MoveResizeTo">
    <width>50%</width>
    <x>0</x>
    <y>0</y>
  </action>
</keybind>
<keybind key="W-Right">
  <action name="UnmaximizeFull"/>
  <action name="MaximizeVert"/>
  <action name="Raise"/>
  <action name="MoveResizeTo">
    <width>50%</width>
    <x>50%</x>
    <y>0</y>
  </action>
</keybind>

但是,应该注意的是,一旦窗口“贴靠”到边缘,除非随后最大化然后再还原,否则它将保持垂直最大化。解决方案是实现额外的按键绑定 - 在本例中使用 downup 键 - 来实现这一点。这也将使从屏幕边缘拉出“贴靠”窗口的速度更快

<keybind key="W-Down">
   <action name="Unmaximize"/>
</keybind>
<keybind key="W-Up">
   <action name="Maximize"/>
</keybind>

此 Ubuntu 论坛线程 提供了更多信息。诸如 opensnapAUR 之类的应用程序也可用于自动模拟窗口贴靠行为,而无需使用按键绑定。另一个选择是使用 bunsen-utilities-gitAUR,它提供了 bl-aerosnap --leftbl-aerosnap --right 命令,如果活动窗口未贴靠,则分别将其贴靠到左边缘或右边缘,否则将其恢复到原始大小和位置。只需将这些命令绑定到您选择的按键组合即可。

下面的示例将使用 alt 键与导航键的组合,在屏幕的每个角为您提供四分之一窗口平铺

<keybind key="A-Up">
  <action name="UnmaximizeFull"/>
  <action name="Raise"/>
  <action name="MoveResizeTo">
    <x>0</x>
    <y>0</y>
    <width>50%</width>
    <height>50%</height>
  </action>
</keybind>
<keybind key="A-Right">
  <action name="UnmaximizeFull"/>
  <action name="Raise"/>
  <action name="MoveResizeTo">
    <x>50%</x>
    <y>0</y>
    <width>50%</width>
    <height>50%</height>
  </action>
</keybind>
<keybind key="A-Left">
  <action name="UnmaximizeFull"/>
  <action name="Raise"/>
  <action name="MoveResizeTo">
    <x>0</x>
    <y>50%</y>
    <width>50%</width>
    <height>50%</height>
  </action>
</keybind>
<keybind key="A-Down">
  <action name="UnmaximizeFull"/>
  <action name="Raise"/>
  <action name="MoveResizeTo">
    <x>50%</x>
    <y>50%</y>
    <width>50%</width>
    <height>50%</height>
  </action>
</keybind>

平滑的显示管理器过渡

注意: 这已被证实可与 LightDM 一起使用。

显示管理器的用户在显示管理器和 Openbox 桌面之间的过渡期间可能会遇到闪烁。闪烁来自 Openbox 在启动期间设置根窗口的颜色。因此,在显示管理器的背景和桌面的壁纸之间,显示器会短暂闪烁灰色。

可以通过编辑位于 /usr/lib/openbox/openbox-autostart 中的 Openbox 启动脚本来禁用设置根窗口的背景颜色。只需注释掉(或删除)以 # Set a background color 开头的块。

注意: 如果用户不专门设置壁纸,则在禁用根窗口颜色调整后,他们将自动“继承”显示管理器的背景。

窗口装饰

要删除所有或特定应用程序的窗口装饰,请在 rc.xml<applications> 部分中使用 <decor> 选项(用户:~/.config/openbox/ 或系统:/etc/xdg/openbox/)。
Firefox 示例,包括 Firefox-Beta 和 Firefox-Nightly 等变体

 <application class="Firefox*">
   <decor>no</decor>
 </application>

也可以禁用所有应用程序的装饰(使用类 "*"),然后为单个应用程序启用它们(使用 yes)。要应用更改,请重新启动您的桌面会话,从而重新启动 Openbox。参考:Openbox 常见问题解答

故障排除

Firefox

基于 Mozilla 的浏览器可能会忽略应用程序规则(例如 <desktop>),除非使用 class="Firefox"。请参阅 #应用程序的 Xprop 值

缺少主题

如果由于任何原因无法选择新提取的主题,请打开主题目录,首先确保它与 Openbox 兼容 - 其中应包含一个 openbox-3 目录和一个 themerc 文件。在某些情况下,也可能存在一个 .obt (OpenBox Theme) 文件,然后可以在 obconf 中手动加载。

主题也可能由于错误的权限而无法访问。有关更多信息,请参阅 文件权限和属性

停止连续桌面切换

默认情况下,Openbox 在鼠标滚轮滚动时从最后一个桌面切换回第一个桌面。在 mousebind 部分中使用 <wrap>no</wrap> 以禁用此行为。

   <context name="Desktop">
     <mousebind button="Up" action="Click">
       <action name="GoToDesktop">
         <to>previous</to>
         <wrap>no</wrap>
       </action>
     </mousebind>
     <mousebind button="Down" action="Click">
       <action name="GoToDesktop">
         <to>next</to>
         <wrap>no</wrap>
       </action>
     </mousebind>
   </context>

窗口加载在活动窗口后面

某些应用程序窗口(例如 Firefox 窗口)可能会加载在当前活动窗口后面,导致您需要切换到刚创建的窗口才能将其聚焦。要修复此行为,请将其添加到您的 ~/.config/openbox/rc.xml 文件中,在 <openbox_config></openbox_config> 标签之间

<applications>
  <application class="*">
    <focus>yes</focus>
  </application>
</applications>

另请参阅