Keyboard-Shortcuts

如何在openbox中將單個修飾鍵設置為快捷方式?

  • July 11, 2015

我想讓我的超級鑰匙啟動dmenu。我已將其設置為我的鍵盤快捷鍵,rc.xml如下所示:

<keybind key="0xffeb">
     <action name="Execute">
       <command>dmenu_run</command>
     </action>
</keybind>

我嘗試在key屬性中將其指定為WW-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它會自動執行的地方。

引用自:https://unix.stackexchange.com/questions/214956