Démarrage silencieux

Mac à Rosny

Membre expert
Club iGen
26 Juin 2005
1 075
59
Il m'arrive de commencer à travailler très tôt le matin.
J'ai fait des recherches pour essayer d'éviter le démarrage Tony tuant du mac, qui réveille toute la famille: son à zéro à l'extinction ou au démarrage, utilitaires, commandes Terminal, passes magnétiques, etc. Rien d'efficace.
Si vous avez ça en stock, vous aurez le mérite de m'éviter divorce et salades d'avocat (bien vinaigrées).
D'avance merci de vous pencher sur l'humanité souffrante.
 
Salut

Perso pour réduire le Chime sonore de démarrage, depuis le terminal, je fais un :
sudo nvram SystemAudioVolume="%01"
et si je veux le remettre :
sudo nvram -d SystemAudioVolume

Ton mot de passe te sera demandé et ne s'affiche pas.
 
  • J’aime
Réactions: melaure
Bizarre, le %01 ne semble marcher que pour le prochain démarrage.

Je fais la commande suivante lors du démarrage via un fichier "plist", peu-être qu'il y a un lien entre les deux ?
Bloc de code:
/usr/bin/osascript -e "set volume output volume 18"
 
Tente de supprimer temporairement l'appel du plist au démarrage. Sinon il faut te débrouiller pour remettre à zéro lors de l'extinction.
 
J'avais du baisser le son avant de l'éteindre ce qui m'a fait croire que ça marchait ...
Finalement, aucun effet chez moi (iMac fin 2013) ...
 
Moi j'utilise un script Applescript que j'ai compilé en appli avec une icône personnalisée (un lit…)

"
set userCanceled to false
try
display dialog "Éteindre?"
on error number -128
set userCanceled to true
end try

if not userCanceled then
tell application "Finder"
set volume 0
shut down
end tell
end
if
"

J'éteins mes machine avec, c'est efficace.
 
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.
 
Dernière édition par un modérateur:
Très bonne documentation pour ceux qui ne connaissent pas ce système

Une documentation (en anglais) qui m'avait servi à mettre en place ce système de mon côté :
https://developer.apple.com/library...ual/BPSystemStartup/Chapters/CustomLogin.html

Plutôt que le LoginHook, j'utilise le launchd un peu pour les raisons suivantes:
Important: There are numerous reasons to avoid using login and logout scripts:
• Login and logout scripts are a deprecated technology. In most cases, you should use launchd jobs instead, as described inCreating Launch Daemons and Agents.
• Login and logout scripts are run as root, which presents a security risk.
• Only one of each script can be installed at a time. They are intended for system administrators; application developers should not use them in released software.

Documentation en anglais ici :
https://developer.apple.com/library...stemStartup/Chapters/CreatingLaunchdJobs.html
En plus du réglage sonore, j'utilise ce système pour lancer une synchronisation sur icloud et pour récupérer des info sur le net automatiquement toutes les heures
 
:coucou: Nouvoul

Merci pour l'info : j'ignorais l'existence de cet utilitaire. J'étais resté sur le cas de figure des anciens comme «Start Ninja» ou «Startup Sound» qui ne fonctionnaient plus depuis lurette - et c'est ce qui m'avait conduit à employer les hooks ("accroches" du LoginWindow) comme décrit précédemment.
 
:coucou:

Je viens de passer sur El Capitan en principal et je m'attache à retrouver une configuration similaire à ce que j'exploitais avec Snow Leopard.

Je butte sur un détail en rapport direct avec ce sujet que je remonte pour l'occasion ;)

Bien sûr, je suis très intéressé par la série de commande proposée par @macomaniac , mais je n'ai pas réussi ma première tentative et je ne suis pas sûr d'avoir tout bien fait.

Ce que je recherche c'est de laisser le réglage du son général tel qui l'est et d'avoir le gong du démarrage à un niveau réduit. Sur Snow Leopard startupsoundprefpane faisait très bien le job.

Si j'ai bien compris, pour cette option de ne pas rendre le Mac muet au démarrage, j'ai appliqué la 2ème méthode

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

J'ai bien obtenu le script chimebas.sh dans la Bibliothèque du Système, mais au démarrage de ce matin, j'ai toujours le même niveau de son (trop fort). Dois-je passer par la manip suivante censée affiner le réglage ? Je ne me suis pas lancé là-dedans car je n'ai pas bien intégré la méthode (éditeur de scripts, etc.).

Merci pour tout conseil.
 
Finalement, quelle bidouille réussit à faire ce boulot ?
Chez moi le chime était inactivé et le restait depuis des lustres après la commande classique:
Terminal
--
sudo nvram SystemAudioVolume=%80
--

Il est revenu tout seul, comme un grand, ces derniers jours. La commande ci-dessus ne fonctionne plus.

Je remarque par ailleurs, qu'Onyx, qui proposait la suppression du Startup chime, ne le fait plus.
Il y a peut-être quelque chose qui a été modifié dans MacOS, empêchant ce paramétrage. Dommage. :mad:
 
Je reviens sur mon sujet, je n'ai pas modifié le script chimebas.sh créé initialement.

Si j'ai bien compris le développement de @macomaniac la deuxième option, celle qui m'intéresse, a pour but de baisser le son (volume 1) au démarrage.

En fait, je me suis aperçu que le chime de démarrage est moins fort, toujours un peu trop à mon goût, mais que le script fonctionne car le réglage de son se trouve dans sa partie basse après le démarrage.

Je comprends mieux alors l'intérêt de la commande proposée :

Bloc de code:
echo '#!/bin/bash' > /Library/Scripts/sonmoyen.sh ; echo "osascript -e 'set volume 6'" >> /Library/Scripts/sonmoyen.sh

Par contre je ne vois pas comment l'appliquer dans le Terminal ? Tel quel ? Après un sudo su ?
 
Bonjour Jib

As-tu actuellement un fichier intitulé sonmoyen.sh à la localisation : Bibliothèque > Scripts ?
 
:coucou:

Non, je n'ai fait que l'étape qui a créé chimebas.sh