¿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?
¿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?
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:
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.
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)
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
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.
Lea otras preguntas en las etiquetas macos