🏫

macOSで平日の定時にチャイムを鳴らす方法

2024/02/26に公開

macOS Sequoia 15.0 以降への注記 (2024/9/20)

macOS Sequoia 15.0以降ではcronの動作が変わったため、以下の方法では上手く動作しません。launchctlを使用した方法を別途執筆しました。

macOS Sequoia 15.0以降で平日の定時にチャイムを鳴らす方法

macOSの"時計"アプリだとアラームが鳴り止まない

みなさん定時に何か音を鳴らしたい場合にどうしてますか?

私はmacOSの"時計"アプリ(Clock.app)を使っていたのですが、止めるまで音が鳴り止まないので家族にたいへん不評でした。

月〜金の定時に1回だけ音を再生するアプリを自作しようかとも考えたのですが、macOSはUnix互換OSなのでcronが使えるじゃん、と気づいたので以下の方法をやってみました。

チャイム音を自作する

フリー素材を使っても良いのですが気に入った音がないのでGarageBandで自作しました。

完成したら[共有]-[曲を"ミュージック"に...]で"ミュージック"アプリ(Music.app)に共有します。

アーティスト名やアルバム名も入力しておきます。これは共有後の楽曲ファイルのパス名として使用されます。

Music.app側で再生できることを確認したら、曲名の右端の[…]をクリックします。

ポップアップメニューから[情報を見る]を選択します。曲の情報ダイアログの[ファイル]タブで楽曲ファイルのフルパスを確認しておきます。

この曲のフルパスは以下であることが確認できました。

/Users/yasuyuki/Music/iTunes/iTunes\ Music/Music/Yasuyuki\ ENDO/School\ Sounds/Chime.m4a

コマンドラインで音を鳴らす

macOSにはafplayというプログラムが最初から存在するのでこれで音を鳴らしてみましょう。

/usr/bin/afplay /Users/yasuyuki/Music/iTunes/iTunes\ Music/Music/Yasuyuki\ ENDO/School\ Sounds/Chime.m4a

これを実行すると1回だけ再生して音が止まることが確認できました。これをcronで実行すれば良さそうです。

crontabの確認と設定

まずログインユーザーの現在のcrontabを確認しておきます。

crontab -l

何も表示されなければ現在のcrontabは空です。何か表示されたらファイルにリダイレクトして保存しておきましょう。ここではホームディレクトリにetcというディレクトリを作って~/etc/crontabというファイルに保存することにします。

crontab -l > ~/etc/crontab

crontabのフォーマットは以下の仕様になっています。

分 時 日 月 曜日 コマンド

月曜から金曜の8:45と13:00と17:30にチャイムを鳴らしたい場合のcrontabは以下の通りです。

45 8 * * 1,2,3,4,5 /usr/bin/afplay /Users/yasuyuki/Music/iTunes/iTunes\ Music/Music/Yasuyuki\ ENDO/School\ Sounds/Chime.m4a
0 13 * * 1,2,3,4,5 /usr/bin/afplay /Users/yasuyuki/Music/iTunes/iTunes\ Music/Music/Yasuyuki\ ENDO/School\ Sounds/Chime.m4a
30 17 * * 1,2,3,4,5 /usr/bin/afplay /Users/yasuyuki/Music/iTunes/iTunes\ Music/Music/Yasuyuki\ ENDO/School\ Sounds/Chime.m4a

ログインユーザーのcrontabにすでに何か設定がある場合は~/etc/crontabファイルに上記を追加し、何も設定がない場合には上記内容を~/etc/crontabファイルとして保存します。

ではcrontabコマンドでこの設定を有効化しましょう。

crontab < ~/etc/crontab

設定が反映されたかcrontab -lで確認しておきましょう。これで平日の定時に音を鳴らす設定は完了です。あとはその時間になったらチャイム音が鳴ることを確認してください。

GitHubで編集を提案

Discussion