J'utilise des claviers anglais, russes et arméniens. Lorsque j'essaie de changer de disposition, il change "en" -> "am" -> "ru" -> "en"... Je veux utiliser Left Alt + Shift pour basculer entre "en" et "am", et Right Alt + Shift pour basculer entre "en" et "ru". Pouvez-vous m'aider ?
Réponse
Trop de publicités?Il existe de nombreux raccourcis à choisir pour passer d'une disposition de clavier à une autre mais aucun ne correspond à ce que vous voulez.
Quoi qu'il en soit, cela peut être fait en utilisant un bash scripts et deux raccourcis personnalisés.
D'abord, créez le script, appelons-le change_layouts
:
#!/bin/bash
#script to switch between two keyboard layouts
if [ $# -ne 2 ];then
echo "Usage: `basename $0` first_layout second_layout"
echo " ex: change_layouts us ru"
exit
fi
first_layout=$1
second_layout=$2
if [ -z "$(ls -l /usr/share/X11/xkb/symbols | grep ^- | awk '{print $9}' | grep $first_layout)" ]; then
echo "Error: Doesn't exists ant keyboard layout called '$first_layout'."
exit
fi
if [ -z "$(ls -l /usr/share/X11/xkb/symbols | grep ^- | awk '{print $9}' | grep $second_layout)" ]; then
echo "Error: Doesn't exists ant keyboard layout called '$second_layout'."
exit
fi
if [ "$first_layout" = "$second_layout" ]; then
echo "Error: The arguments (keyboard layouts) must to be different."
exit
fi
current_layout=$(gsettings get org.gnome.libgnomekbd.keyboard layouts)
if [ "$current_layout" = "['$first_layout', '$second_layout']" ]; then
gsettings set org.gnome.libgnomekbd.keyboard layouts "['$second_layout', '$first_layout']"
else
gsettings set org.gnome.libgnomekbd.keyboard layouts "['$first_layout', '$second_layout']"
fi
Sauvegarder le script dans votre ~/bin
et n'oubliez pas de le rendre exécutable :
chmod +x ~/bin/change_layouts
Maintenant vous pouvez tester le script dans le terminal. Exécutez-le plusieurs fois pour voir comment il fonctionne.
Ensuite, ajoutez vos raccourcis personnalisés. Allez à Réglage du système → Clavier → Raccourcis → Raccourcis personnalisés et suivez les instructions de l'image ci-dessous :