Coucou,
désolée pour le titre du fil !
Je cherche à rédiger un script pour "protéger" d'une éventuelle mise à jour, une configuration personnalisée de clavier, suite à
cette discussion.
Mon problème, c'est que je ne sais pas trop ce que ferait une mise à jour.
Ne le sachant pas, je suis partie avec l'idée qu'elle pouvait du plus radical au moins radical :
1) renouveler entièrement le dossier : /usr/share/X11/xkb/symbols/
2) modifier l'un ou l'autre, ou les deux fichiers :
/usr/share/X11/xkb/symbols/gr et /usr/share/X11/xkb/rules/evdev.xml
Donc voilà, le script "isgrc.sh", un peu lourd
, mais qui permet de tester et de réinstaller un clavier grec fonctionnel (testé sur une VM) sur laquelle il n'y a pas eu d'installation du clavier.
#!/bin/sh
### Conditions du script:
## Par sécurité, dans un dossier ~/GRC, se garder les copies des fichiers originaux avant installation :
# /usr/share/X11/xkb/symbols/gr
# /usr/share/X11/xkb/rules/evdev.xml
## Avoir copier dans ~/GRC des sauvegardes les fichiers rendant la disposition du clavier grec_hypathie fonctionnelle :
# cp /usr/share/X11/xkb/symbols/grec_hypathie ~/GRC/grec_hypathie
# cp /usr/share/X11/xkb/rules/evdev.xml ~/GRC/evdev-new
## Avec la commande sudoer (root) avoir configuré le fichier /etc/sudoers pour pouvoir utiliser sudo.
## pour lxde : avoir une sauvegade de /etc/default/keyboard dans ~/GRC et une copie de ~/GRC/etc_default_keyboard_new (ce fichier mofifié pour le clavier grec_hypathie).
##### isgrc.sh :
# partie qui teste la fonctionnalité du clavier :
var1=`find /usr/share/X11/xkb/symbols/ -type d -name "symbols" -mtime -1 -print`
var2=`ls /usr/share/X11/xkb/symbols | grep "grec_hypathie"`
var3=`grep -c "grec_hypathie" "/usr/share/X11/xkb/rules/evdev.xml"`
testgrc (){
if [ "$var1" = "" ]; then
echo ""
echo "Il n'y a eu pas de modification $var1 dans /usr/share/X11/xkb/symbols/."
elif [ "$var1" != "" ]; then
echo ""
echo "Le répertoire $var1 a été modifié il y a moins d'un jour."
fi
if [ "$var2" = "grec_hypathie" ]; then
echo ""
echo "Le fichier \"grec_hypathie\" est présent."
else
echo ""
echo "Le fichier grec_hypathie est absent."
fi
if [ "$var3" -eq "6" ]; then
echo ""
echo "Le fichier \"/usr/share/X11/xkb/rules/evdev.xml\" est intact."
elif [ "$var3" -eq "0" ]; then
echo ""
echo "Le fichier \"/usr/share/X11/xkb/rules/evdev.xml\" n'est pas configuré pour grec_hypathie."
fi
}
testgrc
#partie qui réinstalle le clavier :
echo ""
read -p "Voulez-vous installer le clavier grec_hypathie ? [O|N] : " reponse1
if [ "$reponse1" = "O" ]; then
sudo cp ~/GRC/grec_hypathie /usr/share/X11/xkb/symbols/grec_hypathie
sudo cp ~/GRC/evdev-new /usr/share/X11/xkb/rules/evdev.xml
elif [ "$reponse1" = "N" ]; then
echo "Le clavier grec_hypathie ne sera pas installé."
exit 2
fi
echo "Les fichiers de configuration pour le clavier grec ont été installés."
var4=`echo "${XDG_CURRENT_DESKTOP}"`
if [ $var4 = "LXDE" ]; then
echo ""
echo "Votre environnement est $var4."
echo ""
fi
read -p "Voulez-vous ajouter 'grec_hypathie' à la liste des claviers ? [O/N] : " reponse2
if [ "$reponse2" = "O" ]; then
echo "shift+Alt pour passer d'un clavier à l'autre"
sudo cp ~/GRC/etc-default-keyboard-new /etc/default/keyboard
sudo udevadm trigger --subsystem-match=input --action=change
elif [ "$reponse2" = "N" ]; then
echo ""
echo "N'oubliez pas d'ajouter "grec_hypathie" pour l'utiliser !"
fi
echo ""
echo "Le système doit être redémarré !"
echo ""
read -p "Voulez-vous redémarrer maintenant ?[O/N] : " reponse3
if [ "$reponse3" = "O" ]; then
echo ""
echo "Après le redémarrage, n'oubliez pas de sélectionner le clavier \'grec_hypathie\' parmi les configurations claviers."
sudo /sbin/shutdown -r now
elif [ "$reponse3" = "N" ]; then
echo ""
echo "Le clavier sera actif au prochain redémarrage !"
exit 2
fi
exit 0
Ensuite je pense configurer cron pour qu'il se lance par exemple tous les dimanches.
Je n'ai pas trouvé comment détecter une mise à jour de xkb... sinon j'aurais testé la fonctionnalité de la disposition à condition qu'il y eu mise à jour de kxb
Dernière modification par Hypathie (24-07-2014 12:13:06)