Apakah ada cara untuk mengacak efek suara peringatan di Mac OS? Dalam sistem, saya dapat memilih efek suara mana yang ingin saya dengar. Apakah ada cara bagi sistem untuk memilih suara acak setiap kali?
Ini tidak dibangun ke dalam macOS jadi ini adalah sesuatu yang Anda harus skrip dan lakukan sedikit penyesuaian. Anda membutuhkan yang berikut:
Suara sistem ada di /System/Library/Sounds
direktori yang saya tidak sarankan untuk mencoba untuk memodifikasi. Anda dapat menyalinnya ke ~/Libary/Sounds
atau direktori kustom lain yang Anda pilih. Dengan cara ini, Anda dapat menambahkan suara khusus Anda sendiri tanpa mengganggu suara Sistem itu sendiri.
Skrip di bawah ini akan menghasilkan angka acak antara 0 dan jumlah file yang Anda miliki di direktori suara Anda. Ini kemudian akan membuat array dari semua nama file dan kemudian memilih nama file acak (elemen array) yang kemudian akan menyalin file itu ke file lain yang disebut CustomAlert.aif
. Anda dapat menyesuaikan nama file dan jalur yang sesuai dengan kebutuhan Anda.
#!/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
Pastikan izin skrip diatur untuk memungkinkan eksekusi:
chmod +x randomAlert.sh
Terakhir, pastikan skrip berada di lokasi "aman" (folder di direktori home Anda selalu merupakan tempat yang baik)
Untuk menjalankan skrip, Anda perlu menggunakan launchd
layanan ini. Plist dapat masuk ke salah satu dari 3 lokasi:
~/Library/LaunchAgents
- Untuk hanya satu pengguna, jalankan sebagai pengguna (yaitu diri Anda sendiri)/Library/LaunchAgents
- Untuk semua pengguna, jalankan sebagai pengguna /Library/LaunchDaemons
- Sebagai daemon sistem (jalankan sebagai root)Saya merekomendasikan salah satu dari dua yang pertama; tidak masuk akal untuk dijalankan sebagai daemon sistem.
<?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>
Setelah Anda menyalinnya ke direktori yang sesuai, Anda harus menjalankannya launchctl
launchctl load com.user.randomSound.plist
Di pengaturan Anda, atur lansiran ke CustomAlert.aif
. Meskipun suara akan berubah, nama file akan tetap sama.
Itu dia! Setiap 24 jam, skrip Anda akan dimulai dan menetapkan suara peringatan acak baru.