Acabei usando o xcape , um utilitário projetado para fazer exatamente isso:
xcape allows you to use a modifier key as another key when pressed and released on its own. Note that it is slightly slower than pressing the original key, because the pressed event does not occur until the key is released.
Citado no leiame do xcape
Usando o xcape, você pode atribuir a imprensa e liberar uma tecla modificadora para uma tecla diferente ou até mesmo uma sequência de teclas. Por exemplo, você pode atribuir Super para um atalho de espaço reservado como ⎈ Ctrl ⇧ Shift ⎇ Alt Super D com:
xcape -e 'Super_L=Control_L|Shift_L|Alt_L|Super_L|D'
Agora, quando você pressionar e soltar Super sem pressionar nenhum outro chaves, o xcape irá enviar eventos de teclado simulando pressões de ⎈ Ctrl ⇧ Shift ⎇ Alt Super D (mantendo todas as teclas modificadoras pressionadas como se você as pressionasse como um atalho). / p>
Se você pressionar Super e outra chave (ou segure Super muito longo, o tempo limite padrão é 500 ms), o xcape passará os eventos do teclado, sem disparar chaves extras.
Se você colocar o atalho de espaço reservado em rc.xml
, ele será executado quando Super e somente Super é pressionado.
<keybind key="C-A-S-W-d">
<action name="Execute">
<command>dmenu_run</command>
</action>
</keybind>
Outros atalhos envolvendo Super não serão afetados.
Note que você terá que rodar o xcape toda vez que inicializar, então você pode querer colocá-lo em algum lugar como ~/.config/openbox/autostart
onde ele será executado automaticamente.