Как установить одну клавишу-модификатор как ярлык в openbox?

565
gandalf3

Я хочу, чтобы мой супер ключ стартовал dmenu. Я установил его как сочетание клавиш в моем rc.xml:

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

Я попытался указать его как W, W-и в с его кодом ключа ( 0x85). Wотвечает на нажатие буквы w, W-ничего не делает и немедленно 0x85запускает dmenuсобытие KeyPress вместо ожидания KeyRelease. Поэтому другие комбинации клавиш, которые используют супер в качестве модификатора, сработают dmenuвместо этого.

Как можно сказать openbox, что я хочу, чтобы ярлык срабатывал только тогда, когда супер-клавиша нажата и отпущена сама по себе без каких-либо других нажатий клавиш?

1

1 ответ на вопрос

1
gandalf3

I got it to work by using xcape (packaged in the AUR).

From it's man page:

xcape allows a modifier key to be used as another key when it is pressed and released on its own.

In short, I assigned super to a dummy shortcut (⎈ Ctrl⇧ Shift⎇ AltLinux key SuperD) with

xcape -e 'Super_L=Control_L|Shift_L|Alt_L|Super_L|D' 

Note that you'll have to run this each time you reboot, so you may want to put it in your ~/.config/openbox/autostart script or something.

This dummy shortcut is picked up by openbox with an entry in rc.xml:

<keybind key="C-A-S-W-d"> <action name="Execute"> <command>dmenu_run</command> </action> </keybind> 

I also wrote a slightly more detailed answer about this here.

Похожие вопросы