Où sont les keymaps dans Debian? (Utilisation des touches de chargement pour changer le clavier.)

12

De la console réelle (par exemple Ctrl- Alt- F3), je voudrais utiliser sudo loadkeys dvorak comme dans ubuntu . Bien que cela fonctionne automatiquement par Ubuntu, Debian veut que je trouve un fichier de keymap. Je n'ai pas la /usr/share/keymapsréponse qui est parfois donnée. find / -type f -name '*dvorak*'retourne quelques fichiers qui loadkeysne prendront pas. Comme dans cette autre réponse, je ne veux pas apporter de modification permanente à mon système en utilisant console-config. Je veux écrire des scripts simples qui peuvent changer le clavier à la volée.

Y a-t-il un package que je peux installer ou quelque chose?

Puisque j'aimerais éventuellement permuter Caps-Lock et Escape, je devrais probablement faire mes propres keymaps personnalisés , de toute façon, n'est -ce pas?

John Baber-Lucero
la source

Réponses:

15

1) Assurez-vous que le console-datapackage est installé:

# loadkeys dvorak
Loading /usr/share/keymaps/i386/dvorak/dvorak.kmap.gz

$ dpkg --search /usr/share/keymaps/i386/dvorak/dvorak.kmap.gz
console-data: /usr/share/keymaps/i386/dvorak/dvorak.kmap.gz

$ cat /etc/debian_version 
wheezy/sid

2) À mon humble avis, oui dumpkeys > test.keymap && edit test.keymap && loadkeys testest le plus simple.

barti_ddu
la source
1

Ceci est un script de mon armoire à poison personnelle que j'utilise pour faire de CAPSLOCK une CTRL supplémentaire sur Debian. Il devrait fournir suffisamment d'indices pour que vous puissiez l'adapter davantage vous-même.

Il est supposé que la disposition kbd «us» est utilisée jusqu'à présent, la nouvelle disposition du clavier sera appelée «sjas» ici.

Bon mot:

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

Pas sur une seule ligne, donc cela peut être lu plus facilement:

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

Remplacez les occurrences de chaîne 'sjas' et 'us' par en conséquence où votre disposition actuelle diffère et comment vous voulez appeler la nouvelle.

sjas
la source