S'il y a un truc qui m'agace, c'est lorsqu'on allume le portable et que lors de la connexion sous Gnome, le son se mettre à hurler parce que j'ai oublié de le baisser avant de me déconnecter la veille.
Alors évidemment, une des possibilité consiste à faire un script au démarrage qui fixe le niveau sonore à, disons, 30%. Mais voila, les scripts de démarrage (situés dans ~/.config/autostart) ne se lancent qu'une fois la connexion réalisée, et il se passe donc une ou deux secondes avant que le son ne baisse à 30%, ce qui est largement suffisant pour se faire remarquer dans une réunion ou un amphi 
L'autre possibilité consiste évidemment à ne pas garder les infos de session lors de la fermeture ... oui mais voila, j'aime bien garder ces infos pour d'autres applications. Alors il ne restait plus qu'à prendre soin de baisser le volume avant déconnexion.
Je me suis mis à chercher un moyen d'automatiser la tâche en cherchant s'il existait un dossier shutdown équivalent à autostart dans lequel on pourrait placer des scripts qui s'exécuteraient à la clôture de session ; mais n'ayant rien trouvé, je suis tombé sur une conversation décrivant comment utiliser zenity afin de créer une interface de déconnexion personnalisée.
Zenity permet de créer des boites de dialogue en GTK qui interagissent donc avec l'utilisateur, mais dont le traitement de fond se fait par scripts (bash, par exemple) : en fonction de l'entrée utilisateur via la boite de dialogue, zenity lance un script adapté pour le traitement de cette entrée.
Pour avoir une idée de la façon dont zenity créée une interface, tappez dans une console : zenity --entry ou zenity --calendar utilisez les pages de manuel pour avoir toutes les options, par exemple les diverses options du mode «list» de zenity s'obtiennent par zenity --help-list.
On va commencer par le créer, ce dossier ~/.config/shutdown ; c'est ce dossier qui contiendra tous les scripts susceptibles d'être lancés à la déconnexion. Ceci fait, autant continuer à bien faire les choses en proposant les options «classiques» de déconnexion : fermer la session, rebooter, éteindre. On va même pousser le vice jusqu'à permettre l'exécution d'un script différent selon le type de déconnexion qui est choisi.
Dans le script principal qui suit, et que l'on va placer dans notre dossier shutdown, nous allons donc créer une interface GTK contenant une liste avec les options "Fermer la session", "Eteindre l'ordinateur" et "Rebooter la machine".
Comme on le voit, ce script permet de personnaliser l'exécution d'un script différent selon qu'on ne fait que fermer la session, que l'on éteint ou reboote l'ordinateur. Par exemple, le choix de l'option «rebooter la machine» entrainera l'exécution du script reboot_script.sh.
On place alors chaque script associé également dans le dossier ~/.config/shutdown ; voici le script sommaire qui baisse le volume à la déconnexion :
Il suffit enfin de créer dans la barre supérieure un bouton lanceur d'application dans lequel on entre la commande sh /home/toto/.config/shutdown/shut.sh et si on choisi bien l'icone, on a alors un joli bouton de déconnexion personnalisé. On peut évidemment rajouter des tas d'autres options de déconnexion via le script zenity (proposer un backup de données juste avant la fermeture par exemple).
Il est clair que pour la simple utilisation qui consiste à baisser le volume à la sortie, on utilise là une usine à gaz (qui cependant n'est pas couteuse du tout) ; il est fort probable que d'autres solutions plus élémentaires soient disponibles. Mais l'avantage de la méthode utilisée via zenity est de permettre une personnalisation très poussée, et pas seulement que pour des scripts de déconnexion.
Pour ne citer qu'un exemple, l'affichage d'une boite "agenda" qui renvoie à un script la date choisie par l'utilisateur peut-être intéressante pour des personnes «allergiques» aux lignes de commande, qui nécessitent donc une interaction par boite de dialogue.
- répondre
tuxce , le 16 March, 2008 - 21:58sans diminuer de l'interet du script, pourquoi tu n'enlèverais pas tout simplement la musique lancé à la connexion?
- répondre
advaya, le 16 March, 2008 - 22:16Ah oui tu as entièrement raison
J'avoue que j'y avais même pas pensé (idiot que je suis !) car m'étant auparavant posé la question des scripts de déconnexion (pour faire des synchro automatiques), je suis donc parti sur cette idée d'emblée.
Poster un nouveau commentaire