#1 Le 12/12/2010, à 01:15
- lasl92260
modifier des raccourcis claviers grâce à un raccourci clavier...
bonjour à tous,
Je viens de me fabriquer un petit script qui peut tout d'abord sembler bizarre.
Mais tout bien réfléchi, son mérite est double.
D'une part il permet de modifier le raccourci clavier attribué à une fonction (dans mon cas alt+F4 que certains rigolos s'amusaient à presser intempestivement)
D'autre part il permet de montrer (à des non initiés) l'étendue de la configurabilité d'ubuntu et la puissance de la ligne de commande/scripts bash...
Voici le dit script: (il ne répond qu'à mon usage, mais est très facilement adaptable)
#!/bin/bash
### Published under GNU/GPLv3
###
### Author :
### - lasl92260
###
###
### This free software is provided "as is" without any warranty
### Ce programme libre et gratuit est fourni "en l'état" sans aucune garantie
#Ce script permet de changer certains racccourcis clavier à la volée, notement le Alt+F4
#Cela peut être rendu souhaitable avec la fréquentation d'utilisateurs faisant de mauvaises blagues...
#Le script offre deux méthodes: une visible utilisant libnotify ou zenity en tant que fallback, et une autre invisible...
#Pour installer ce script, vous devez être sous gnome. Puis après avoir placé et renommé le fichier comme bon vous semble, lancer le à l'aide de la commande "bash votrearborescence/votrefichier install" Le processus est entièrement automatisé.
#Pour la désinstallation, utilisez "uninstall" à la place de install...
#Pour l'utilisation, le script transforme la combinaison alt+F4 en Mod4+Alt+F4 et vice versa, et cela à l'aide de la combinaison mod4+Alt+F1 pour le mode invisible et mod4+Alt+F2 pour le mode visible.
#myscript="bash ~/Téléchargement/chgcode"
myscript="bash `pwd`/$(basename $0)"
mycommand1="<Alt><Mod4>F1" #combinaison invisible
mycommand2="<Alt><Mod4>F2" #combinaison visible
combine1="<Alt>F4" #combinaison normale
combine2="<Alt><Mod4>F4" #combinaison alternative
if [ "$1" = "install" ] ; then #installation du script si l'argument install et passé en ligne de commande
if [ ! -x /usr/bin/notify-send ] ; then
echo " Vous devriez installer notify-send pour avoir une jolie notification en haut à droite. Pour cela ajouter le paquet:
libnotify-bin"
fi
currentcommand1="`gconftool-2 --get /apps/metacity/keybinding_commands/command_11`"
currentrac1="`gconftool-2 --get /apps/metacity/global_keybindings/run_command_11`"
currentcommand2="`gconftool-2 --get /apps/metacity/keybinding_commands/command_12`"
currentrac2="`gconftool-2 --get /apps/metacity/global_keybindings/run_command_12`"
#test de l'adresse de la commande
echo " COMMANDE 1:"
if [ "$currentcommand1" = "$myscript" ] ; then
echo " Commande 11 déjà attribuée"
elif [ "$currentcommand1" = "" ] ; then
gconftool-2 -t str --set /apps/metacity/keybinding_commands/command_11 "$myscript"
echo " La commande 11 a reçu une nouvelle valeur"
else
echo " Une erreur s'est produite: la commande 1a commande 11 est déjà attribuée"
fi
echo " COMMANDE 2:"
if [ "$currentcommand2" = "$myscript 1" ] ; then
echo " Commande 12 déjà attribuée"
elif [ "$currentcommand2" = "" ] ; then
gconftool-2 -t str --set /apps/metacity/keybinding_commands/command_12 "$myscript 1"
echo " La commande 12 a reçu une nouvelle valeur"
else
echo " Une erreur s'est produite: la commande 1a commande 12 est déjà attribuée"
fi
#test du raccourci de la commande
echo " RACCOURCI 1:"
if [ "$currentrac1" = $mycommand1 ] ; then
echo " Raccourci de la commande 11 déjà attribué"
elif [ "$currentrac1" = "disabled" ] ; then
gconftool-2 -t str --set /apps/metacity/global_keybindings/run_command_11 $mycommand1
echo " Le raccourci de la commande 11 a reçu une nouvelle valeur"
else
echo " Une erreur s'est produite: le raccourci de la commande 1a commande 11 est déjà attribuée"
fi
echo " RACCOURCI 2:"
if [ "$currentrac2" = $mycommand2 ] ; then
echo " Raccourci de la commande 12 déjà attribué"
elif [ "$currentrac2" = "disabled" ] ; then
gconftool-2 -t str --set /apps/metacity/global_keybindings/run_command_12 $mycommand2
echo " Le raccourci de la commande 12 a reçu une nouvelle valeur"
else
echo " Une erreur s'est produite: le raccourci de la commande 1a commande 12 est déjà attribuée"
fi
elif [ "$1" = "uninstall" ] ; then #désinstallation du script si l'argument uninstall et passé en ligne de commande
currentcommand1="`gconftool-2 --get /apps/metacity/keybinding_commands/command_11`"
currentrac1="`gconftool-2 --get /apps/metacity/global_keybindings/run_command_11`"
currentcommand2="`gconftool-2 --get /apps/metacity/keybinding_commands/command_12`"
currentrac2="`gconftool-2 --get /apps/metacity/global_keybindings/run_command_12`"
#test de l'adresse de la commande
echo " COMMANDE 1:"
if [ "$currentcommand1" = "$myscript" ] ; then
gconftool-2 -t str --set /apps/metacity/keybinding_commands/command_11 ""
echo " La commande 11 a été désinstallée"
else
echo " La commande 11 est déjà désinstallé!"
fi
echo " COMMANDE 2:"
if [ "$currentcommand2" = "$myscript 1" ] ; then
gconftool-2 -t str --set /apps/metacity/keybinding_commands/command_12 ""
echo " La commande 12 a été désinstallée"
else
echo " La commande 12 est déjà désinstallé!"
fi
#test du raccourci de la commande
echo " RACCOURCI 1:"
if [ "$currentrac1" = $mycommand1 ] ; then
gconftool-2 -t str --set /apps/metacity/global_keybindings/run_command_11 disabled
echo " Le raccourci de la commande 11 a été désinstallé"
else
echo " Le raccourci de la commande 11 est déjà désinstallé!"
fi
echo " RACCOURCI 2:"
if [ "$currentrac2" = $mycommand2 ] ; then
gconftool-2 -t str --set /apps/metacity/global_keybindings/run_command_12 disabled
echo " Le raccourci de la commande 12 a été désinstallé"
else
echo " Le raccourci de la commande 12 est déjà désinstallé!"
fi
else #le script fait son boulot et retourne des informations via libnotify-bin ou zenity si on lui passe l'argument 1 en ligne de commande
declare -i verbose
verbose=$1
function verbose
{ if [ $verbose = 1 ] ; then
txt=${1/</}
txt=${txt//</+}
txt=${txt//>/+}
txt=${txt//++/+}
if [ ! -x /usr/bin/notify-send ] ; then
zenity --info --title="Raccourci Changé" --text="Vous avez choisi avec succès la configuration: \n $txt"
else
notify-send -i info "Raccourci Changé" "Vous avez choisi avec succès la configuration: $txt"
fi
echo $txt
fi }
var="`gconftool-2 --get /apps/metacity/window_keybindings/close`"
if [ $var = $combine1 ] ; then
gconftool-2 -t str --set /apps/metacity/window_keybindings/close "$combine2"
elif [ $var = $combine2 ] ; then
gconftool-2 -t str --set /apps/metacity/window_keybindings/close "$combine1"
fi
var2="`gconftool-2 --get /apps/metacity/window_keybindings/close`"
verbose "$var2"
fi
J'attends vos avis et vos critiques...
Ce script va-t-il vous être utile?
Hors ligne