You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Openbox技术咨询:如何根据条件忽略按键绑定?

解决Openbox中仅在特定应用拦截快捷键,其余窗口正常传递的问题

完全可以实现!Openbox的按键绑定支持条件判断,你只需要在绑定里添加窗口类的匹配规则,只在Firefox窗口中拦截Ctrl+P,其他窗口下让快捷键正常传递给应用程序。

步骤1:确认Firefox的窗口类名

首先要获取Firefox的窗口类,打开终端输入:

xprop WM_CLASS

然后点击任意Firefox窗口,终端会输出类似:

WM_CLASS(STRING) = "Navigator", "Firefox"

这里的第二个值Firefox就是我们需要的窗口类名(用第一个Navigator也能达到相同效果)。

步骤2:修改Openbox配置文件

打开你的Openbox配置文件,通常路径是~/.config/openbox/rc.xml(系统级配置路径为/etc/xdg/openbox/rc.xml),找到<keyboard>标签所在的区域。

添加或者修改如下按键绑定:

<keybind key="C-p">
  <action name="If">
    <class>Firefox</class>
    <then>
      <!-- 仅在Firefox窗口中忽略这个快捷键 -->
      <action name="Ignore"/>
    </then>
    <!-- 没有else块,意味着非Firefox窗口下Openbox不做任何处理,快捷键自动传给应用 -->
  </action>
</keybind>

步骤3:重新加载Openbox配置

保存配置文件后,在终端输入命令让Openbox重新读取配置:

openbox --reconfigure

这样设置后,当你在Firefox窗口按下Ctrl+P时,Openbox会拦截这个按键(不执行任何动作,相当于禁用了打印快捷键);而在其他窗口中,Openbox不会处理这个按键,Ctrl+P会正常传递给当前应用执行它原本的功能。

如果之后需要针对其他应用做类似的设置,只需要替换<class>标签里的应用类名即可,同样用xprop WM_CLASS命令获取对应应用的类名。

内容的提问来源于stack exchange,提问作者tenuej

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:20:20