Hay alguna forma para cambiar aleatoriamente el sonido de alerta efecto en Mac OS? En el sistema de preferencias soy capaz de seleccionar el efecto de sonido que quiero escuchar. Es allí una manera de que el sistema que elija un sonido aleatorio cada vez?
Respuesta
¿Demasiados anuncios?Esto no se construye en macOS, así que esto es algo que usted va a tener un guión y hacer un poco de personalización. Usted necesitará los siguientes:
- Ubicación personalizada para tu sonido
- Script para cambiar aleatoriamente el sonido
- launchd plist para ejecutar la secuencia de comandos en un intervalo de tiempo establecido
Ubicación personalizada para el Sonido
Sonidos del sistema en la /System/Library/Sounds
directorio que no recomiendo intentar modificar. Puede copiarlos a ~/Libary/Sounds
o en otro directorio personalizado de su elección. De esta manera, usted puede agregar sus propios sonidos personalizados sin interferir con el Sistema de sonidos mismos.
Script para Aleatorizar el archivo de sonido
El siguiente script generará un número aleatorio entre 0 y el número de archivos que tiene en su sonido directorio. A continuación creará una matriz con todos los nombres de archivo y, a continuación, seleccione un nombre de archivo al azar (elemento de la matriz) que luego copiar ese archivo a otro archivo llamado CustomAlert.aif
. Usted puede personalizar el nombre de archivo y ruta de acceso para satisfacer 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 la secuencia de comandos de los permisos se configuran para permitir la ejecución:
chmod +x randomAlert.sh
Por último, asegúrese de que el script está en un lugar "seguro" (una carpeta en su directorio de inicio es siempre un buen lugar)
Launchd plist
Tener ejecute la secuencia de comandos, usted necesita usar el launchd
de servicio. El plist puede ir en cualquiera de los 3 lugares:
-
~/Library/LaunchAgents
- Para un solo usuario, ejecuta como el usuario (es decir, a sí mismo) -
/Library/LaunchAgents
- Para todos los usuarios, ejecutar como usuario -
/Library/LaunchDaemons
- Como un demonio del sistema (ejecutar 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 usted ha copiado en el directorio adecuado, usted tiene que poner en marcha con launchctl
launchctl load com.user.randomSound.plist
Establecer su Sonido de Alerta para el Archivo Personalizado
En su configuración, establezca la alerta a CustomAlert.aif
. Aunque el sonido va a cambiar, el nombre del archivo será el mismo.
Eso es todo! Cada 24 horas, la secuencia de comandos dará el pistoletazo de salida y establecer un nuevo aleatoria sonido de alerta.