Remapear uma combinação de teclas para outra combinação, e. g. Super + Ctrl + Shift + J - Ctrl + Shift + Esquerda

8

Eu quero implementar uma camada de chave de adição, para que eu possa acessar chaves não alfanuméricas sem ter que mover meus pulsos.

Estou usando o Autokey para essa finalidade, mas a experiência não foi satisfatória: houve atrasos ocasionais e a inserção de teclas originais em determinados aplicativos.

Então eu preciso de uma solução de baixo nível.

    
por lolmaus - Andrey Mikhaylov 08.10.2016 / 22:35

2 respostas

7

Dê uma combinação de xbindkeys e xvkbd uma tentativa. xbindkeys ouve as chaves e envia a tradução para xvkbd.

sudo apt-get install xbindkeys xvkbd
xbindkeys --defaults > /home/your-user-name/.xbindkeysrc

Abra o .xbindkeysrc no seu editor favorito. Eu comentei todo o resto, mas é bom consultar se necessário.

Para conferir, tentei mapear Ctrl +; para Ctrl + V

"xvkbd -xsendevent -text "\Cv""
   control + semicolon

Espero que você esteja atrás de algo assim

"xvkbd -xsendevent -text "\C\S\[Left]""
  Super+Control+Shift+J

Salve o arquivo e execute xbindkeys

Para recarregar quaisquer alterações de configuração, eu matei o processo xbindkeys e reiniciei.

sintaxe xbindkeys

Eu trabalhei a combinação de teclas usando uma GUI para xbindkeys

sudo apt-get install xbindkeys-config
xbindkeys-config

Depois de executar isso, pressione Get Key para a combinação para colocar na segunda linha do seu arquivo .xbindkeysrc.

sintaxe xvkbd

Do manual:

\r - Return
\t - Tab
\b - Backspace
\e - Escape
\d - Delete
\S - Shift (modify the next character; please note that modify with ''\S'' will be ignored in many cases. For example, ''a\Cb\ScD\CE'' will be interpreted as a, Control-b, c, Shift-D, and Control-Shift-E.)
\C - Control (modify the next character)
\A - Alt (modify the next character)
\M - Meta (modify the next character)
\[keysym] - the keysym keysym (e.g., \[Left]), which will be processed in the similar matter with other general characters
\{keysym} - the keysym keysym (e.g., \{Left}), which will be processed in more primitive matter and can also be used for modofier keys such as Control_L, Meta_L, etc.; also, \{+keysym} and \{+keysym} will simulate press and release of the key, respectively [Version 3.3]
\Ddigit - delay digit * 100 ms
\xvalue - move mouse pointer (use "+" or "-" for relative motion)
\yvalue - move mouse pointer (use "+" or "-" for relative motion)
\mdigit - simulate click of the specified mouse button

Adora ouvir como funciona e se a combinação foi adequada ao seu propósito. Parece bom como um keymapper, mas não necessariamente um macro runner.

    
por Mark Hewitt 20.10.2016 / 09:40
0

Acho que você pode encontrar a solução aqui (porque o Xorg é a camada de nível inferior ...): link

EDIT: para o que eu entendi você precisa adicionar a opção lv3:win_switch no seu arquivo .conf

    
por mattia.b89 14.10.2016 / 12:52