Este é um script do meu gabinete de envenenamento pessoal que eu uso para tornar permanentemente o CAPSLOCK um CTRL adicional no debian. Ele deve fornecer dicas suficientes para que você possa adaptá-lo ainda mais.
Supõe-se que o layout kbd 'us' seja usado até agora, o novo layout de teclado será chamado 'sjas' aqui.
Oneliner:
apt install console-data -y; TMP=$(loadkeys us | awk {'print $2'}); TMP2=$(dirname $TMP)/sjas.kmap.gz; cp -vaf $TMP $TMP2; gzip -d $TMP2; TMP3=${TMP2%%.gz}; sed -i -e 's/us.map/sjas.map/' -e 's/.*58.*/keycode 58 = Control/' $TMP3; gzip -c $TMP3 > $TMP2; rm $TMP3; sed -i 's/"us"/"sjas"/g' /etc/default/keyboard
Não está em uma linha, por isso pode ser lido mais facilmente:
apt install console-data -y
TMP=$(loadkeys us | awk {'print $2'})
TMP2=$(dirname $TMP)/sjas.kmap.gz
cp -vaf $TMP $TMP2
gzip -d $TMP2
TMP3=${TMP2%%.gz}
sed -i -e 's/us.map/sjas.map/' -e 's/.*58.*/keycode 58 = Control/' $TMP3
gzip -c $TMP3 > $TMP2
rm $TMP3
sed -i 's/"us"/"sjas"/g' /etc/default/keyboard
Substitua ocorrências de strings 'sjas' e 'us' por correspondências onde o layout atual seja diferente e como você deseja chamar o novo.