Definir o mapa de teclas x diretamente usando a linha de comando é de longe a minha maneira preferida de lidar com mapas de teclado, e isso é muito descontextualizado, portanto, qualquer solução que você apresentar ajudará você em boa posição.
Tente isto:
setxkbmap -print | xkbcomp -xkb -o original.xkb -
isso fará um backup do seu mapa de teclado original. Então faça
cp original.xkb switch-CAPS-LCTL.xkb
Agora edite o switch-CAPS-LCTL e encontre as linhas que leem
<CAPS> = ??;
<LCTL> = ??;
onde ?? é um número. No meu, estes são dois números de dígitos, 66 e 37, respectivamente. Basta trocá-los e pronto.
xkbcomp switch-CAPS-LCTL.xkb $DISPLAY
muda o layout e
xkbcomp original.xkb $DISPLAY
irá restaurar a configuração antiga.
Se você for usar esses dois mapas de chave simultaneamente, para máxima facilidade de uso, basta criar dois aliases para lidar com essas alterações de mapa de teclado e colocar os mapas de teclado em um diretório oculto, como ~/.stuff
mkdir ~/.stuff
mv original.xkb switch-CAPS-LCTL.xkb ~/.stuff
nano ~/.bashrc
Adicione o seguinte a ~ / .bashrc:
alias capswitch="xkbcomp ~/.stuff/switch-CAPS-LCTL.xkb $DISPLAY"
alias ctrlswitch="xkbcomp ~/.stuff/original.xkb $DISPLAY"
então,
source ~/.bashrc
se você quiser que as alterações entrem em vigor imediatamente, digite capswitch
e ctrlswitch
para alterar o mapa de teclas.