Eu encontrei uma pergunta diferente no AskUbuntu que tinha uma boa resposta , mas eu tive que modificá-la levemente para trabalho nos meus sistemas.
Por meio dos comentários de Perry e Sergiy, eu descobri essa solução que está funcionando no Ubuntu 16.04 (Xenial) e estarei levando-a comigo para os outros sistemas Linux que uso.
Eu instalei o xcape e coloquei as seguintes linhas de código no meu arquivo .profile
em meu diretório pessoal.
MÉTODO ATUALIZADO:
Devido a vários gerenciadores de exibição (gdm / kdm / sddm / etc) se comportarem de maneiras estranhas e redefinirem o setxbmap
após a suspensão / retomada ou bloqueio / desbloqueio, descobri como definir as opções de uma maneira que eles herdam e não redefinem o tempo todo. Como suspendo e retomei muito, precisei ter certeza de que não recebi muitas cópias de xcape
em execução, o que é resolvido no novo script abaixo.
Primeiro, modifique a configuração do teclado com sudo gedit /etc/default/keyboard
e defina XKBOPTIONS="ctrl:nocaps"
e, em seguida, no seu ~/.xprofile
coloque a linha abaixo.
ps aux | grep -i '[x]cape' && killall -9 xcape; hash xcape 2>&1 >/dev/null && xcape -e 'Control_L=Escape' -t 100 &
Espero que as várias seções do script economizem algum tempo / problema e evitem logins emperrados. Primeiro, ele verifica se já existe uma instância em execução e a mata, pois a única coisa que xcape
faz é mapear Ctrl para Esc, isso é seguro, então a parte hash
garante que você tenha xcape
instalado, caso contrário, seu sistema pode travar quando você tentar fazer o login, porque todos os scripts de inicialização devem sair corretamente.
Forma antiga:
setxkbmap -option 'caps:ctrl_modifier'; xcape -e '#66=Escape'
Sergiy:
I've used gnome-tweak-tool to map Caps Lock to Ctrl as there is no Keyboard layout in System Settings on Ubuntu 14.04. Then xcape -e 'Control_L=Escape' didn't work, but after using xcape -d I've discovered that Caps Lock generates keycode 66 and remapped it respectively: xcape -e '#66=Escape'. – Sergiy Byelozyorov Sep 4 '14 at 10:08
Louis:
As per this blog post, it is possible to do this with xcape alone: setxkbmap -option 'caps:ctrl_modifier'; xcape -e 'Caps_Lock=Escape' setxkbmap -option 'caps:ctrl_modifier'; xcape -e 'Caps_Lock=Escape;Control_L=Escape;Control_R=Escape' – Louis Simoneau Aug 4 '15 at 10:06