Openbox:根据每个应用程序禁用 Alt-F4

Openbox:根据每个应用程序禁用 Alt-F4

我正在使用LXDE并且在我的中.config/openbox/lxde-rc.xml我有ALT-F4定义的操作:

<keybind key="A-F4">
  <action name="Close"/>
</keybind>

正如预期的那样,这适用于所有应用程序。当ALT-F4按下 时,窗口关闭。

我有一个应用程序,我们称之为foo,我希望它不受ALT-F4.即当ALT-F4按下时,我希望窗口保持打开状态(该操作应该被完全忽略)。

是否有可能制定这样的规则?

编辑:根据@Michael Homer我的答案,我在我的.config/openbox/lxde-rc.xml

<keybind key="A-F4">
  <action name="If">
    <title>foo</title>
    <then>
      <!-- Do nothing for foo -->
    </then>
    <else>
      <action name="Close"/>
    </else>
  </action>
</keybind>

这很好用,但我需要匹配fooor bar

实现这一目标的最简单的解决方案是什么?

答案1

这是可能的如果行动:

<keybind key="A-F4">
 <action name="If">
  <title>* foo</title>
  <then><!-- Do nothing for foo --></then>
  <else>
   <action name="Close" />
  </else>
 </action>
</keybind>

<title>条件将匹配以“foo”结尾的窗口标题。<title type="regex">还有<title type="exact">其他类型的比赛的变化。当窗口匹配时,该操作将不执行任何操作,而当不匹配时(对于所有其他窗口),它将照常关闭。

Openbox 3.6 及更高版本包括额外的选择器标签<class><name>, 和<role>如果标题不唯一,这可以帮助更准确地识别您的窗口。它们支持type与 相同的属性和内容<title>,但针对相关的 X 属性进行测试。


如果您使用的是 Openbox 的早期版本,并且您的窗口无法通过标题来识别,那么您的运气就不那么好,但是可以通过以下方式来破解某些内容:xdotool:将 A-F4 操作绑定到更精确地标识窗口的脚本,然后发送绑定到实际关闭操作(如果不匹配)的秘密密钥组合。

相关内容