Aleatorizar efecto de sonido de alerta en Mac OS

4

¿Hay alguna forma de aleatorizar el efecto de sonido de alerta en Mac OS? En las preferencias del sistema, puedo seleccionar el efecto de sonido que quiero escuchar. ¿Hay alguna forma para que el sistema elija un sonido aleatorio cada vez?

    
pregunta A. Kol 02.02.2018 - 18:51

1 respuesta

3

Esto no está integrado en macOS, por lo tanto, esto es algo que tendrá que hacer un script y hacer un poco de personalización. Necesitará lo siguiente:

  • Ubicación personalizada para su sonido
  • Script para aleatorizar el sonido
  • launchd plist para ejecutar el script a un intervalo establecido

Ubicación personalizada para sonido

Los sonidos del sistema están en el directorio /System/Library/Sounds que no recomiendo intentar modificar. Puede copiarlos a ~/Libary/Sounds u otro directorio personalizado de su elección. De esta manera, puede agregar sus propios sonidos personalizados sin interferir con los sonidos del sistema.

Script para aleatorizar el archivo de sonido

La siguiente secuencia de comandos generará un número aleatorio entre 0 y la cantidad de archivos que tiene en su directorio de sonido. Luego creará una matriz de todos los nombres de archivo y luego seleccionará un nombre de archivo aleatorio (elemento de matriz) que luego copiará ese archivo a otro archivo llamado CustomAlert.aif . Puede personalizar el nombre de archivo y la ruta para que se adapte a sus necesidades.

#!/bin/bash
#
# script filename:  randomAlert.sh

#User Defined Variables
  sdir="/Users/foobar/test"
  sfname="CustomAlert.aif"


#Remove Custom Alert Sound if already Exists

  if [ -f ${sdir}/${sfname} ]; then
    rm -f ${sdir}/${sfname}
  fi



#Get Number of Files in Directory
  numfiles=(*)
  numfiles=${#numfiles[@]}


#Generate Random Number
  rnum=$(( $RANDOM % ${numfiles}  + 0 ))


#Put names of files into array
  fnames=(*)

#Copy file to Alert Sound File
  cp ${sdir}/${fnames[${rnum}]} ${sdir}/${sfname}

exit

Asegúrese de que los permisos del script estén configurados para permitir la ejecución:

chmod +x randomAlert.sh

Finalmente, asegúrese de que el script esté en una ubicación "segura" (una carpeta en su directorio de inicio siempre es un buen lugar)

Launchd plist

Para que se ejecute el script, debe usar el servicio launchd . La lista puede ir en cualquiera de las 3 ubicaciones:

  • ~/Library/LaunchAgents : para un solo usuario, ejecute como el usuario (es decir, usted mismo)
  • /Library/LaunchAgents : para todos los usuarios, ejecute como usuario
  • /Library/LaunchDaemons - Como un demonio del sistema (ejecutarse como root)

Recomiendo cualquiera de los dos primeros; no tiene sentido correr como un demonio del sistema.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.user.randomSound</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/USERNAME/Path_to_Scripts/randomAlert.sh</string>
    </array>
    <key>StartCalendarInterval</key>
    <array>
    <dict>
        <key>Hour</key>
        <integer>00</integer>
        <key>Minute</key>
        <integer>00</integer>
    </dict>

</dict>
</plist>

Una vez que lo haya copiado en el directorio apropiado, debe iniciarlo con launchctl

launchctl load com.user.randomSound.plist

Establezca su sonido de alerta en el archivo personalizado

En tu configuración, configura la alerta a CustomAlert.aif . Aunque el sonido cambiará, el nombre del archivo seguirá siendo el mismo.

Eso es todo! Cada 24 horas, su secuencia de comandos se iniciará y establecerá un nuevo sonido de alerta aleatoria.

    
respondido por el Allan 03.02.2018 - 01:03

Lea otras preguntas en las etiquetas