X11: troque a tecla do teclado pelo botão do mouse

X11: troque a tecla do teclado pelo botão do mouse

Quero que minha tecla Menu no teclado (código 135) faça o mesmo que o botão direito do mouse.

https://superuser.com/questions/336674/emulating-mouse-click-with-a-keyboardfaz isso, mas sacrifica a região do teclado numérico do meu teclado, então essas teclas não têm mais sua função normal. Como uso meu teclado, não estou interessado em sacrificá-lo.

Então estou procurando uma solução queapenastoca no botão Menu (código de acesso 135).

Responder1

[NB: obviamente e propositalmente, isso não"trocar"uma tecla do teclado com um botão do mouse; apenas permite que uma tecla do teclado atue como um botão do mouse; mas o botão do mouse NÃO começará a agir como a tecla do teclado]

xkbset m
xkbset exp =m  # keep the state unchanged after the AccessX timeout
xkbcomp "$DISPLAY" - |
  sed -e 's/ Menu / Pointer_Button3 /' -e '/interpret KP_/,/};/d' | 
  xkbcomp - "$DISPLAY"

Você também pode vincular outra combinação de teclas para alternar os MouseKeyscontroles. Por exemplo. com Shift-Menu:

xkbcomp "$DISPLAY" - |
  sed -e 's/ Menu \| Pointer_Button3 / Pointer_Button3, MouseKeys_Enable /' -e '/interpret KP_/,/};/d' |
  xkbcomp - "$DISPLAY"

Isso pressupõe que a Menuchave ainda não foi recuperada para outra coisa.

Em vez de xbksete xkbcomp, você pode facilmente escrever um pequeno programa para fazer a mesma coisa (todas as operações que eles fazem podem ser feitas por qualquer cliente X11 normal).

Como integrar isso com "ambientes de desktop" teimosos (que alteram as configurações do xkb com base em suas próprias regras) é deixado como um exercício para o leitor.

informação relacionada