C'è un modo per randomizzare l'effetto sonoro di avviso in Mac OS? Nei prefs di sistema sono in grado di selezionare quale effetto sonoro voglio sentire. C'è un modo per il sistema di scegliere un suono casuale ogni volta?
Questo non è incorporato in macOS, quindi è qualcosa che dovrai scrivere e fare un po 'di personalizzazione. Avrai bisogno di quanto segue:
I suoni di sistema sono nella directory /System/Library/Sounds
che non consiglio di provare a modificare. Puoi copiarli in ~/Libary/Sounds
o in un'altra directory personalizzata di tua scelta. In questo modo, puoi aggiungere i tuoi suoni personalizzati senza interferire con gli stessi suoni del sistema.
Lo script seguente genererà un numero casuale compreso tra 0 e il numero di file presenti nella tua directory audio. Creerà quindi un array di tutti i nomi di file e quindi selezionerà un nome file casuale (elemento array) che copierà il file in un altro file chiamato CustomAlert.aif
. Puoi personalizzare il nome file e il percorso in base alle tue esigenze.
#!/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
Assicurati che le autorizzazioni dello script siano impostate per consentire l'esecuzione:
chmod +x randomAlert.sh
Infine, assicurati che lo script sia in una posizione "sicura" (una cartella nella tua home directory è sempre un buon posto)
Per eseguire lo script, devi utilizzare il servizio launchd
. Il plist può andare in una qualsiasi delle 3 posizioni:
~/Library/LaunchAgents
- Per un solo utente, esegui come utente (ad esempio te stesso) /Library/LaunchAgents
- Per tutti gli utenti, esegui come utente /Library/LaunchDaemons
- Come daemon di sistema (eseguito come root) Raccomando uno dei primi due; non ha senso funzionare come un demone di 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>
Dopo averlo copiato nella directory appropriata, devi avviarlo con launchctl
launchctl load com.user.randomSound.plist
Nelle tue impostazioni, imposta l'avviso su CustomAlert.aif
. Anche se il suono cambierà, il nome del file rimarrà lo stesso.
Questo è tutto! Ogni 24 ore, il tuo script inizia e imposta un nuovo suono di avviso casuale.
Leggi altre domande sui tag macos