Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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