Créer un lanceur pour éteindre avec demande de confirmation
Posté : mer. 28 oct. 2015 19:03
Ce tutoriel a pour but de créer un lanceur dans le tableau de bord de MATE pour éteindre l'ordinateur, avec demande de confirmation pour éviter d'éteindre sans le vouloir. Il existe déjà un lanceur qui fait à peu près ça dans Linux Mint. Mais dans mon cas, j'ai rencontré un problème sur mon installation de Linux Mint qui faisait que je ne pouvais plus éteindre l'ordinateur via le mintmenu ou via le lanceur du tableau de bord original (voir http://forum-francophone-linuxmint.shos ... f=23&t=523). D'autre part, il est facile de personnaliser ce lanceur si on le souhaite. Il est d'ailleurs possible de faire autre chose qu'éteindre, la méthode peut être appliquée à toute commande possible et imaginable !
La première chose à faire, c'est de sauvegarder ce script dans un fichier texte quelque part sur son disque.
L'idéal est de le mettre dans un dossier de son /home qui soit isolé des autres pour éviter de le supprimer avec d'autres documents. Dans la suite, je supposerai que ce script, que l'on nommera "lanceur_eteindre", est enregistré dans /home/user/scripts_perso.
Ensuite, on va créer un lanceur dans le tableau de bord de MATE. Faites un clic droit dans le panneau à l'endroit où vous voulez placer le lanceur et cliquez sur "Ajouter au tableau de bord". Sélectionnez "Créer un lanceur d'application personnalisé". Dans la fenêtre qui s'ouvre, renseignez les champs comme ceci :
Type : Application dans un terminal
Nom : Extinction
Commande : /home/user/scripts_perso/lanceur_eteindre
Commentaire : Éteindre l'ordinateur
Vous pouvez choisir une icône qui vous convient pour ce lanceur. Une fois ceci fait, essayez votre lanceur. Cliquez dessus... Crotte de bique, ça ne marche pas... Un message d'erreur vous informe que xterm n'est pas installé. Qu'à cela ne tienne, on va l'installer. Installez-le via le gestionnaire de logiciels ou via la commande
Maintenant, si vous cliquez sur votre lanceur, un terminal s'ouvre en vous demandant d'appuyer sur une touche pour sélectionner une option. Par exemple, appuyez sur "e" pour éteindre. Si vous avez cliqué sur ce lanceur par erreur, appuyez sur n'importe quelle touche qui n'est pas listée (par exemple, "a" ou "échap") et la fenêtre de terminal se terminera sans rien faire.
Pistes d'améliorations :
- xterm : Ce n'est pas très propre d'installer xterm alors qu'on dispose déjà d'un émulateur de terminal (mate-terminal sur Linux Mint MATE). Je suppose qu'il doit y avoir une solution pour que l'option "lancer dans un terminal" du tableau de bord MATE appelle mate-terminal et non pas xterm ? Une variable d'environnement à changer peut-être ?
- option déconnexion : J'aurais voulu pouvoir ajouter les options "déconnexion" et peut-être "changer d'utilisateur" dans ce script. On m'a conseillé la commande suivante pour déconnecter:
mais elle ne fonctionne pas. J'ai essayé en la remplaçant par
mais à cause d'un bug spécifique à mon cas ça ne fonctionne pas non plus chez moi, je ne sais pas si ça marche chez quelqu'un d'autre...
Testé dans Linux Mint MATE 17.1 32 bits.
--
Kazlu
La première chose à faire, c'est de sauvegarder ce script dans un fichier texte quelque part sur son disque.
Code : Tout sélectionner
echo -n "Que voulez-vous faire ? Appuyez sur la touche correspondante\n"
echo -n "e : Éteindre\n"
echo -n "r : Redémarrer\n"
echo -n "v : Mettre en veille\n"
echo -n "h : Hiberner\n"
echo -n "Appuyez sur une autre touche pour annuler.\n"
stty -echo raw
c=$(dd bs=1 count=1 2>/dev/null )
stty echo -raw
if [ $c = e ]
then
echo "Extinction..."
dbus-send --system --print-reply --system --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
elif [ $c = r ]
then
echo "Redémarrage..."
dbus-send --system --print-reply --system --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
elif [ $c = v ]
then
echo "Veille..."
dbus-send --system --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend
elif [ $c = h ]
then
echo "Hibernation..."
dbus-send --system --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
fi
echo
Ensuite, on va créer un lanceur dans le tableau de bord de MATE. Faites un clic droit dans le panneau à l'endroit où vous voulez placer le lanceur et cliquez sur "Ajouter au tableau de bord". Sélectionnez "Créer un lanceur d'application personnalisé". Dans la fenêtre qui s'ouvre, renseignez les champs comme ceci :
Type : Application dans un terminal
Nom : Extinction
Commande : /home/user/scripts_perso/lanceur_eteindre
Commentaire : Éteindre l'ordinateur
Vous pouvez choisir une icône qui vous convient pour ce lanceur. Une fois ceci fait, essayez votre lanceur. Cliquez dessus... Crotte de bique, ça ne marche pas... Un message d'erreur vous informe que xterm n'est pas installé. Qu'à cela ne tienne, on va l'installer. Installez-le via le gestionnaire de logiciels ou via la commande
Code : Tout sélectionner
sudo apt-get install xterm
Pistes d'améliorations :
- xterm : Ce n'est pas très propre d'installer xterm alors qu'on dispose déjà d'un émulateur de terminal (mate-terminal sur Linux Mint MATE). Je suppose qu'il doit y avoir une solution pour que l'option "lancer dans un terminal" du tableau de bord MATE appelle mate-terminal et non pas xterm ? Une variable d'environnement à changer peut-être ?
- option déconnexion : J'aurais voulu pouvoir ajouter les options "déconnexion" et peut-être "changer d'utilisateur" dans ce script. On m'a conseillé la commande suivante pour déconnecter:
Code : Tout sélectionner
dbus-send --session --type=method_call --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.Logout uint32:1
Code : Tout sélectionner
dbus-send --session --type=method_call --print-reply --dest=org.mate.SessionManager /org/mate/SessionManager org.mate.SessionManager.Logout uint32:1
Testé dans Linux Mint MATE 17.1 32 bits.
--
Kazlu