我想让超级键启动dmenu
。我将其设置为键盘快捷键rc.xml
:
<keybind key="0x85">
<action name="Execute">
<command>dmenu_run</command>
</action>
</keybind>
我尝试将其指定为W
、W-
和 及其键码 ( 0x85
)。W
响应按下字母w
,W-
不执行任何操作,并在 KeyPress 事件上立即0x85
触发dmenu
,而不是等待 KeyRelease。因此,使用 super 作为修饰符的其他组合键将改为触发dmenu
。
如何告诉 openbox 我只希望在按下超级键时触发快捷方式并发布无需任何其他按键就能独立运行吗?
答案1
从它的手册页中:
xcape 允许将修饰键在单独按下和释放时用作另一个键。
简而言之,我将 super 分配给一个虚拟快捷方式(⎈ Ctrl⇧ Shift⎇ Alt SuperD)
xcape -e 'Super_L=Control_L|Shift_L|Alt_L|Super_L|D'
请注意,每次重新启动时您都必须运行此程序,因此您可能需要将其放入~/.config/openbox/autostart
脚本或类似的东西中。
openbox 会在以下位置获取此虚拟快捷方式rc.xml
:
<keybind key="C-A-S-W-d">
<action name="Execute">
<command>dmenu_run</command>
</action>
</keybind>
我还对此写了一个更详细的答案这里。