Atualmente executando Antergos Linux. A configuração que eu gostaria de ter é a seguinte.
Pressionar e soltar CAPS envia ESC.
As combinações de CAPS e qualquer CAPS+h, CAPS+j, CAPS+k, CAPS+l enviam Esquerda, Baixo, Cima e Direita, respectivamente. Com a liberação do CAPS, o ESC não é enviado.
Obviamente, o objetivo aqui é obter algumas vinculações no estilo VIM em programas que não as possuem.
Parece que o xcape seria útil aqui:
https://github.com/alols/xcape
Mas os exemplos não me levam tão longe quanto eu gostaria.
Qualquer ajuda é apreciada.
EDIT: Encontrei uma resposta muito útil aqui:
https://unix.stackexchange.com/a/163675/267068
Alguém pode me ajudar a descobrir como modificar o procedimento para obter CAPS + hjkl conforme necessário. Eu poderia usar o Hyper_L, em vez do Super_L nessa resposta, e mapear o Hyper_L + hjkl para a esquerda, para baixo, para cima, para a direita?
Eu queria fazer exatamente a mesma coisa e, depois de pesquisar e experimentar, finalmente consegui.
Solução 1
Veja a solução 2 abaixo, que é potencialmente melhor.
Mapeamento Caps_lock+ hjkl:
Siga esta resposta e adicione o arquivo config. Você deve adicionar ao
us
arquivo se estiver usando o layout de teclado dos EUA e pular as outras combinações de teclas nas quais não está interessado. Em seguida, executesetxkbmap -layout us
.Caps_lockcomo Esc:
Corra
xcape -e 'ISO_Level3_Shift=Escape'
. Você pode adicionar esta linha ao seu/etc/profile
para não precisar executá-la manualmente após a reinicialização.Solução 2 (provavelmente melhor)
Fiquei feliz com a solução 1, até perceber que não poderia usar as combinações de teclas no IntelliJ, o que é uma grande chatice. Eventualmente, descobri que poderia apenas usar
xmodmap
excape
fazer o trabalho, enquanto ainda era capaz de usá-los no IntelliJ!Mapeamento Caps_lock+ hjkl:
Crie um arquivo (digamos
~/.xmodmap
) com o seguinte conteúdo:Sinta-se à vontade para pular as últimas 4 linhas. Eu os colei porque eles podem ser úteis para você também. Na verdade, estou realmente esperando que o aprimoramento caps_lock funcione no Linux.
Então, corra
xmodmap ~/.xmodmap
.Caps_lockcomo Esc:
Corra
xcape -e 'Mode_switch=Escape'
.Opcional:
Para evitar a aplicação manual das combinações de teclas, coloque os 2 comandos acima em seu arquivo
/etc/profile
.Eu estava tendo problemas para fazer isso funcionar corretamente com /etc/profile, portanto, expandindo a resposta de @matrinica, consegui obter sucesso (no ubuntu/gnome) com o seguinte método:
Etapa 0: instale o xclip e o xcape
Passo 1: crie ~/.xmodmap
Copie o seguinte texto:
Criar arquivo com conteúdo:
Etapa 2: criar script
Copie o seguinte texto:
Criar arquivo com conteúdo:
Torne o arquivo executável:
Etapa 3: criar entrada de início automático
Copie o seguinte texto:
Criar arquivo com conteúdo:
Observação:
Este método não funciona com Wayland e, portanto, não é à prova de futuro. Para métodos compatíveis com Wayland de obtenção de resultados semelhantes, consulte:
https://askubuntu.com/a/898462
https://wiki.archlinux.org/index.php/Keyboard_input
https://realh.co.uk/wp/linux-keymap-hacking/
Se você conseguir criar um método limpo que seja compatível com Wayland, poste-o aqui.
Eu uso símbolos da terceira camada e atribuo setas às letras
hjkl
gnome-tweaks
Ferramenta de instalaçãoDentro do gnome-tweaks, vá para Opções adicionais de layout e escolha Caps Look como uma chave para escolher o terceiro nível.
Em seguida, abra seu terminal e vá para
/usr/share/X11/xkb/symbols/
Existem todos os layouts de teclado armazenados em seu computadorFaça um backup do seu layout
cp us us_old
Modificar arquivo como root
sudo nano us
Terceiros valores em arrays são suas chaves: