Silenciar “StartUp” en Mavericks

volume-48534_640
Uno de nuestros socios, Antonio Hernán (@AH3rn4n) ha confeccionado este tutorial para evitar la musiquita de inicio de Mac OS X.

Tanto Antonio como el Gumcam declinan toda responsabilidad sobre los efectos que puede tener en vuestros equipos.

Empezamos

Venga, al lío, no está todo lo pulido que me gustaría pero funciona. En mi caso me ha funcionado siempre y en cualquiera de los dos equipos, un Macbook 13″ 5.2 con Mavericks en limpio, y un iMac 21″ 2012 (pre los finitos) que es una upgrade de Lion –> Mountain Lion –> Mavericks.

Antes de nada que nadie se lleve a confusión, que yo ésto lo he hecho a base de buscar en los foros de soporte de Apple y probar, que no me he sacado nada de la manga ni soy una mente preclara, es leer mucho, adaptar a tus necesidades y disfrutar del proceso y del resultado.

Con las nuevas actualizaciones OS X ha terminado de cerrar casi todas las puertas a la ejecución de procesos en los momentos de arranque y parada del sistema.
De hecho, es curioso, ponen mucho hincapié en que no se debe arrancar nada automático en el inicio, pero es mucho más fácil de hacer ésto que la ejecución automática de algo en la parada del sistema, que es algo más enrevesada.

Pretendemos por tanto activar la opción de Mute de nuestro audio, de manera que el estado del volumen que tenemos quede intacto pero que no se emita sonido alguno, de esta manera al realizar el siguiente inicio de máquina no tendremos el molesto y/o inoportuno GONGGG.

Y ya, rizando el rizo, si conseguimos que una vez que hemos accedido al equipo, esta modificación desaparezca y tengamos de nuevo el equipo sin Mute activo y con el volumen que antes teníamos, pues mejor que mejor.

Empezamos, la parte de Script en terminal

Se trata de generar dos pequeños scripts bajo BASH (Bourne Again Shell), que invocan al comando /usr/bin/osascript para activar/desactiva la opción de mute de nuestro audio.

Abrimos nuestro terminal, si no lo encontráis en aplicaciones lo más rápido siempre es tirar de spotlight, CMD+Espacio y teclear “Terminal”, y ya tendréis el terminal marcado como aplicación para arrancar con Intro.

Y ahora estamos ante el maravilloso mundo del terminal, la pantalla negra llega de letras blancas.

Os lo voy contando paso a paso, por si alguien no tiene ni la más remota idea de lo que va a hacer, para que vea que es una bobada sin nada que romper, seguro que muchos esto que os pongo os sabe a primero de foro, pero bueno, no todo el mundo…. ya sabéis.

cd /Library/Scripts

cd = change directory, esto es, llévame al directorio “Library” que cuelga de la raíz del sistema y dentro de este a “Scripts”. Este mismo directorio lo véis como una carpeta si entráis a vuestro MachintosHD -> Librería -> Scripts

Ahora vamos a crear el primero de los scripts, el de activado del mute y por tanto silencio de audio. Y vamos a usar un maravilloso editor de texto llamado VI (a alguno lo mismo le suena), ya os aviso VI es de Visual y cuando lo veáis os vais a partir de la risa…

sudo vi MuteON.sh

Lo hacemos con sudo, (“su” de switch user y “do” de hacer, esto es ejecutar algo con otro usuario, al igual que el su “normal” si no se indica usuario es ejecutado para el administrador, root o uid0), y la primera vez nos va a solicitar una clave ¿cual? la de administrador de nuestra máquina.

Y ahora estás ante una pantalla llena de “gorrinillos” de las Ñ (vírgulas o virgulillas me dijeron una vez que se llaman esos símbolos), ese es el editor visual…

Pulsáis la tecla i (i minúscula) para entrar en modo inserción de texto y tenéis que poner lo siguiente (podéis usar copy pega en el terminal sin problemas)

#!/bin/bash
/usr/bin/osascript -e 'set volume with output muted'

Salvamos el documento, para esto pulsamos la tecla ESC y luego la secuencia de teclas : (dos puntos) wq! (w write q quit y ! para forzar el comando, que no hace falta pero es manía de siglos con vi…)

Ya tenemos el fichero de muteon, ahora vamos con el de reactivación:

sudo vi MuteOFF.sh

Igual que antes, pulsamos i para entrar en modo inserción y ponemos este contenido:

#!/bin/bash
/usr/bin/osascript -e 'set volume without output muted'

Y salvamos el documento, igual que antes, ESC, luego :wq! e nitro

Teniendo los dos ficheros les tenemos que dar permisos, para esto el comando a ejecutar es chmod (change mode), que se puede usar de varias formas, bien por notación o bien por permisos y destino de los mismos (propietario, grupo, resto).

Vamos a dar permisos para todo para el propietario (en esta caso será root grupo wheel seguramente), lectura y ejecución para grupo y lectura y ejecución para el resto de usuarios del sistema. Este patrón de permisos es el conocido 755 de toda la vida que se traduce en un -rwxr-xr-x (esto os sonará más de verlo en la reparación de permisos)

Ejecutamos esto:

sudo chmod 755 MuteO*.sh

Por si tenéis curiosidad de si esto funciona, fijaos en la barra de menú, en el icono del “altavoz” y ejecutad estos comandos alternos y veréis como el mute se activa/desactiva.

/Library/Scripts/MuteON.sh

Y veréis como os deja sin sonido

/Library/Scripts/MuteOFF.sh

Y recuperaréis las barritas de sonido.

Ejecución de la parada de máquina

Tenemos que hacer que cuando se apaga la máquina se ejecute el script que nos activa el Mute (y no deja sin sonido y sin GONGGG).

¿Como podemos apagar la máquina? ¿de cuantas formas?, pues hay unas cuantas y sólo he encontrado una forma en la que funciona para todas.
A ver, podemos apagar con el menú de manzana + Apagar, podemos usar Cerrar Sesión + Apagar, podemos reiniciar, Cerrar Sesión + Reiniciar y podemos apagar con el clásico CMD + CTRL + ALT + Eject del CD que es el que yo más uso.

Pues bien, esto que os pongo a continuación me ha funcionado con todo… y lo más gracioso es que Apple dice que esto está DEPRECADO desde Osx 10.4

Estando en el terminal que tenemos abierto y con el que hemos creado los ficheros de script y dado permisos tenemos que ejecutar en primer lugar esto:

sudo defaults read com.apple.loginwindow LogoutHook

Esto te debe dar una salida similar a esta:

The domain/default pair of (/var/root/Library/Preferences/com.apple.loginwindow, LogoutHook) does not exist

Si no te da eso y te aparece algo en uso para ese Hook, no sigas y habla conmigo que miremos que tienes ahí activo en cada logout.

Si te sale como esto que he puesto seguimos y activamos la ejecución de nuestro script ante la parada, con el siguiente código (yo usaría el copia-pega para evitar cambiar alguna mayúscula, minúscula o similares)

sudo defaults write com.apple.loginwindow LogoutHook /Library/Scripts/MuteON.sh

Recordad, si os pide una clave, la de administrador de la máquina.

Hasta aquí la parte de apagado, probad a apagar el equipo con el audio activo (no mute activo) y con volumen, y al arrancar el GONGG no debe sonar, y el control de audio debe aparecer así, con mute y con el volumen donde estaba.

Si se trata de un equipo multiusuario (el típico iMac-Macmini para la familia) no preocuparse, que esto lo desconecta para TODOS.

Ejecución del inicio de máquina

Y ya, por rizar el rizo, queremos que una vez arrancado el equipo, y pasado el momento GONGG sin escucharlo, volvamos a tener activo el audio y a ser posible con el mismo nivel de volumen que teníamos antes.

Fácil , tan sólo tenemos que ejecutar MuteOFF.sh que está en nuestra carpeta de scripts de la librería.
Pero aquí es donde me he encontrado con problemas, existe un LoginHook que hace esto mismo, ejecutar ese script en el login del usuario, pero me funciona de manera un tanto extraña, depende si el equipo viene de una instalación limpia o si es de un upgrade se comporta de diferente manera, y si el equipo es monousuario/multiusuario ídem.

La solución fácil, vamos a nuestra cuenta de usuario (Usuarios y grupos) en el panel de preferencias, pulsamos sobre el botón que dice “Arranque”, pulsamos sobre el + y tan sólo nos queda buscar nuestro script en Macintosh HD –> Librería –> Scripts –> MuteOFF.sh y pulsar sobre Añadir.

Añadido a nuestro perfil de usuario en la carga ya está todo, cuando el equipo reinicie y hagamos login (si es que así lo tenemos configurado) recuperaremos nuestro volumen.

Y hasta aquí he llegado, espero que os sirva de algo, atreveos a hacerlo que no se tardan más de dos minutos y algo aprendéis de las tripas de vuestro sistema.
Para cualquier cosa que necesitéis… a mandar.

3 respuestas a Silenciar “StartUp” en Mavericks

  • probado y funcionando perfectamente, gracias por tutorial

  • Me alegro de que te funcione Antonio.

    No leía ningún comentario a la entrada del blog y ya pensaba que no quedaban valientes que se atreviesen a entrar al terminal de su máquina XD

    Un saludo

  • he seguido todos los pasos detenidamente y no me funciona, algo y al iniciar sigue sonando en gong.. 🙁

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *