如何在openbox中將單個修飾鍵設置為快捷方式?
我想讓我的超級鑰匙啟動
dmenu
。我已將其設置為我的鍵盤快捷鍵,rc.xml
如下所示:<keybind key="0xffeb"> <action name="Execute"> <command>dmenu_run</command> </action> </keybind>
我嘗試在
key
屬性中將其指定為W
、W-
和0xffeb
,但這些都不起作用。
W
響應按下字母w
,而其他人似乎什麼也沒做。我希望在自己按下和釋放超級鍵時觸發快捷方式。這可能嗎?
這是超級使用者根據此處的指南交叉發布的。我讀過這個問題:Super key as shortcut - Openbox,但我沒有看到任何有用的資訊。
我最終使用了xcape,這是一個專門用於執行此操作的實用程序:
xcape 允許您在單獨按下和釋放時將修飾鍵用作另一個鍵。請注意,它比按下原始鍵稍慢,因為直到釋放鍵才會發生按下事件。
引用自xcape 自述文件
使用 xcape,您可以將修改鍵的按下和釋放分配給不同的鍵,甚至是一系列鍵。例如,您可以分配
![Linux key](https://i.stack.imgur.com/X9TZA.png "LINUX5EVAH -CharlesL") Super
給佔位符快捷方式⎈ Ctrl``⇧ Shift``⎇ Alt``![Linux key](https://i.stack.imgur.com/X9TZA.png "LINUX5EVAH -CharlesL") Super``D
,例如:xcape -e 'Super_L=Control_L|Shift_L|Alt_L|Super_L|D'
現在,當您按下並釋放
![Linux key](https://i.stack.imgur.com/X9TZA.png "LINUX5EVAH -CharlesL") Super
而不按下任何其他鍵時,xcape 將發送模擬按下的鍵盤事件⎈ Ctrl``⇧ Shift``⎇ Alt``![Linux key](https://i.stack.imgur.com/X9TZA.png "LINUX5EVAH -CharlesL") Super``D
(按住所有修改鍵,就像您按下它們一樣按下它們一樣快捷方式)。如果您按下另一個鍵(或按住
![Linux key](https://i.stack.imgur.com/X9TZA.png "LINUX5EVAH -CharlesL") Super
太久![Linux key](https://i.stack.imgur.com/X9TZA.png "LINUX5EVAH -CharlesL") Super
,預設超時為 500 毫秒),xcape 將按原樣傳遞鍵盤事件,而不會觸發額外的鍵。如果您將佔位符快捷方式放在 中
rc.xml
,它將在![Linux key](https://i.stack.imgur.com/X9TZA.png "LINUX5EVAH -CharlesL") Super
且僅![Linux key](https://i.stack.imgur.com/X9TZA.png "LINUX5EVAH -CharlesL") Super
在按下時執行。<keybind key="C-A-S-W-d"> <action name="Execute"> <command>dmenu_run</command> </action> </keybind>
其他涉及的快捷鍵
![Linux key](https://i.stack.imgur.com/X9TZA.png "LINUX5EVAH -CharlesL") Super
不受影響。請注意,每次啟動時您都必須執行 xcape,因此您可能希望將它放在某個地方,例如
~/.config/openbox/autostart
它會自動執行的地方。