Randomize Alert Sound Effect in Mac OS

4

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?

    
posta A. Kol 02.02.2018 - 18:51
fonte

1 risposta

3

Questo non è incorporato in macOS, quindi è qualcosa che dovrai scrivere e fare un po 'di personalizzazione. Avrai bisogno di quanto segue:

  • Posizione personalizzata per il tuo suono
  • Script per randomizzare il suono
  • launchd plist per eseguire lo script a un intervallo impostato

Posizione personalizzata per suono

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.

Script su Randomize Soundfile

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)

Launchd plist

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

Imposta il suono di avviso sul file personalizzato

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.

    
risposta data 03.02.2018 - 01:03
fonte

Leggi altre domande sui tag