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.