Salut
ecatomb
En ce qui me concerne > j'utilise depuis lurette les 2
hooks :
LogoutHook &
LoginHook et cela marche parfaitement pour mon usage.
Que je précise ici : je ne souhaite pas baisser le volume sonore du
Chime (le Gong ! de validation du
POST de l'
EFI au démarrage) tout en le préservant audible > je veux absolument
couper tout retentissement du
Chime > pour ensuite, ma session ré-ouverte, me retrouver avec un
niveau sonore identique à celui de ma session à sa fermeture.
Pour réaliser de double effet > il suffit d'abord de créer dans le sous-dossier
Scripts de la
/Library (Bibliothèque Générale de l'OS) 2 fichiers exécutables
.sh > par exemple avec la série de commandes :
Bloc de code:
sudo su
echo '#!/bin/bash' > /Library/Scripts/chime0.sh ; echo "osascript -e 'set volume with output muted'" >> /Library/Scripts/chime0.sh
echo '#!/bin/bash' > /Library/Scripts/sondefaut.sh ; echo "osascript -e 'set volume without output muted'" >> /Library/Scripts/sondefaut.sh
chmod u+x /Library/Scripts/chime0.sh ; chmod u+x /Library/Scripts/sondefaut.sh
sudo defaults write com.apple.loginwindow LogoutHook /Library/Scripts/chime0.sh
sudo defaults write com.apple.loginwindow LoginHook /Library/Scripts/sondefaut.sh
- contrairement à mon habitude > j'échappe un commentaire rhétorique exhaustif du sens des manœuvres en te supposant a priori expert. Je n'ai que 2 points à relever :
- la commande sudo su préliminaire qui fait passer en shell sh-3.2# est requise (ou une variante amenant dans un shell root) pour les 2 commandes echo écrivant du texte dans un fichier créé dans la foulée à un emplacement demandant authentification comme celui de la /Library. En effet > un simple sudo en préfixe ne suffit absolument pas mais retournerait un : permission denied. Je pense que c'est le reflet de la "faiblesse" intrinsèque de la commande echo (qu'il serait trop facile sinon d'invoquer à tout bout de champ avec sudo pour écrire des fichiers fantaisistes un peu partout dans l'OS).
- l'emploi de sudo par contre en préfixe des 2 commandes defaults change l'adresse du fichier de préférence com.apple.loginwindow (sans qu'il soit besoin d'employer un chemin absolu) --> au lieu qu'il s'agisse du fichier ~/Library/Preferences/com.apple.loginwindow (comme dans une commande defaults simple) > il s'agit toujours du fichier /private/var/root/Library/Preferences/com.apple.loginwindow qui se trouve édité en ce qui concerne les clés LogoutHook et LoginHook respectivement. Des hooks ne fonctionnent, en effet, que s'il sont inscrits dans la Bibliothèque de root et pas d'un utilisateur admin.
Ce paramétrage fonctionne extrêmement bien > son concept étant des plus simples (et satisfaisant pour mes propres attentes) : le son-Système est carrément
coupé complètement en sortie de session de part l'instruction recelée pour le processus
LoginWindow dans la Bibliothèque de
root > puis le son est carrément
rétabli complètement par le processus
LoginWindow avant toute ouverture de session d'utilisateur admin > toujours par instruction dans la Bibliothèque de
root. En conséquence > le niveau de préférence de son dans ma session n'ayant
jamais varié > je retrouve en ouverture de session le niveau sonore qui était ma préférence en sortie.
----------
Mais j'ai cru comprendre que tu ne souhaites pas utiliser ce dispositif. Tu voudrais plutôt une
diminution drastique du son du
Chime qui ne le coupe pas. C'est évidemment possible par un
hook de sortie d'une syntaxe un peu différente, ce qui impliquerait alors les commandes (réduites) :
Bloc de code:
sudo su
echo '#!/bin/bash' > /Library/Scripts/chimebas.sh ; echo "osascript -e 'set volume 1'" >> /Library/Scripts/chimebas.sh
chmod u+x /Library/Scripts/chimebas.sh
sudo defaults write com.apple.loginwindow LogoutHook /Library/Scripts/chimebas.sh
=> alors la valeur : "abaisser le son-Système à
1" associée à la clé
LogoutHook dans le fichier de préférences de la Bibliothèque de
root va bien être suivi au re-démarrage et le
Chime va retentir
pianissimo.
Dans ce cas de figure > quelqu'un qui voudrait raffiner davantage en rétablissant le niveau du son dans sa session à une valeur
x (que je choisirais ici comme
moyenne) --> n'aurait qu'à lancer l'«
Éditeur de script» > coller comme instruction dans un fichier :
Bloc de code:
do shell script "osascript -e 'set volume 6'"
> l'enregistrer au format
application dans le sous-dossier
Applications du dossier de compte d'utilisateur > enfin dans le panneau des
Préférences Système >
Utiilsateurs et groupe >
Utilisateur connecté >
Ouverture --> ajouter l'application dans les éléments à lancer en ouverture de session.
Ce type d'instruction de re-réglage du niveau de son pour la session untel est très bien suivie. Quelques manipulations que j'avais faites m'ayant montré qu'un
LoginHook dans la Bibliothèque de
root exécutant l'instruction d'un fichier ainsi créé au préalable :
Bloc de code:
echo '#!/bin/bash' > /Library/Scripts/sonmoyen.sh ; echo "osascript -e 'set volume 6'" >> /Library/Scripts/sonmoyen.sh
n'est pas honorée > le son du Système demeurant au niveau bas défini par le
LogoutHook.