Como permitir que os acordes das teclas do teclado alterem temporariamente o mapa de teclas?

8

Eu realmente me acostumei com a funcionalidade "Simultaneous Vi Mode" do KeyRemap4MacBook que permite que você pressione e segure o s e d simultaneamente e depois use o h , j , k e < kbd> l como as teclas de seta. Quando s e d são pressionados juntos, nenhum evento s ou d é disparado, mas quando eu digito normalmente não note nenhum problema de atraso ao pressionar s ou d individualmente.

Como eu poderia recriar essa funcionalidade no Linux (especificamente no RHEL 6.4)?

Algumas ideias que tive:

  1. Se s + d poderia ser remapeado para um modificador, então as chaves h , j , k , modificador + l + pode ser mapeado de acordo. (O teclado que estou usando agora não tem nenhuma tecla modificadora disponível para usar ao invés de s + d , mais o ponto do Modo Vi simultâneo é manter todos os dedos ligados a linha inicial. CapsLock já foi remapeado para Control e Escape ).

  2. O ideal seria encontrar uma maneira de fazer isso usando as configurações do sistema ou algo parecido com o teclado XKB que já estou usando. Se isso não for possível, talvez algo semelhante ao programa xcape (que eu estou usando e que permita que as chaves sejam mapeadas para diferentes pressionamentos de tecla e modificadores símbolos-chave) podem ser escritos. xcape desencadeia o lançamento da chave, por isso teria de ser ajustado para manter os s As chaves e d estão muito lentas.

por ws_e_c421 01.01.2014 / 00:37

3 respostas

1

Então, depois de quatro anos, finalmente tenho um rascunho de uma resposta para essa pergunta. A resposta é usar as Ferramentas de Interceptação que usam a libevdev para pegar a entrada do teclado e processá-la antes de emitir a nova versão. Em relação ao mapeamento simultâneo de chaves, fiz um plugin áspero para o Interception Tools chamado Chorded Keymap que permite h , j , k , l age como as teclas de seta quando s e d são pressionado simultaneamente.

    
por 10.11.2017 / 06:12
1

Você não pode fazer isso com as ferramentas padrão, você teria que escrever algo (provavelmente muito do xserver será afetado, e se você quiser que isso funcione fora do X, haverá mudanças no kernel).

A razão para isso é que as idéias nas quais o design é baseado (e otimizado) não incluem a gravação de chaves regulares ou a emissão de caracteres de modificadores.

    
por 17.03.2015 / 18:08
0

Você precisaria obter um adaptador programável que fica entre o teclado e o computador. Eles estão lá fora, mas difíceis de encontrar.

Ou vá um pouco mais longe, por exemplo: link

    
por 05.09.2016 / 16:46