Eu queria fazer exatamente a mesma coisa e, depois de pesquisar e experimentar, finalmente consegui que funcionasse.
Solução 1
(Veja a solução 2 abaixo, que é potencialmente melhor)
Passo 1 (mapeamento caps_lock + hjkl) : Siga esta resposta e adicione a configuração. Você deve adicionar ao arquivo "us" 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, execute setxkbmap -layout us
.
Etapa 2 (caps_lock as escape) : execute xcape -e 'ISO_Level3_Shift=Escape'
. Você pode adicionar essa linha ao seu /etc/profile
, para não precisar executá-la manualmente após a reinicialização.
=============================================== ====
Solução 2 (provavelmente melhor)
Eu estava feliz com a solução 1, até que percebi que não podia usar as teclas no IntelliJ, o que é uma grande chatice. Eventualmente, descobri que podia usar o xmodmap e o xcape para fazer o trabalho, enquanto ainda podia usá-los no IntelliJ!
Etapa 1 (mapeamento caps_lock + hjkl) : crie um arquivo (digamos "~ / .xmodmap") com o seguinte conteúdo:
keycode 66 = Mode_switch
keysym h = h H Left
keysym l = l L Right
keysym k = k K Up
keysym j = j J Down
keysym u = u U Prior
keysym i = i I Home
keysym o = o O End
keysym p = p P Next
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 obter o aprimoramento do caps_lock funcionando no Linux.
Em seguida, execute xmodmap ~/.xmodmap
.
Etapa 2 (caps_lock como escape) : execute xcape -e 'Mode_switch=Escape'
.
Etapa 3 (opcional) : Para evitar a aplicação manual das combinações de teclas, coloque os dois comandos acima em /etc/profile
.