2020年3月26日木曜日

Crontabで時報と時刻通知を出すようにする

時間感覚がボロボロなのでタスクバーに時計を置けば「まだ5分ある」「あと3分」「5分過ぎてるけど大丈夫」「10分ならまだいい」とチラ見しながら1時間を浪費し、かといって部屋中の時計を無視すれば永遠に時間を浪費してしまうので、間をとってタスクバーの時計を除去しコンピュータに時報を鳴らしてもらうことにした。
こんな劣悪なユーザーにも応えてくれるのがLinuxの素敵なところ。


/etc/crontab の直接編集

Cronでひとたび検索するとうまく動かない系の記事がたくさん出てくるように、なんか自分のとこでも crontab -e コマンドや cron.hourly ディレクトリ直下へのスクリプト設置なんかもあんまりうまく行かず、唯一ちゃんとなったのは /etc/crontab をviなんかで直接編集した時だけだった。

時報サウンドを鳴らして通知を出す

/etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:$HOME/bin
MAILTO=""
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
17 * * * * root    cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
DISPLAY=:0.0
00 * * * * fahrenheit /usr/bin/notify-send -t 10000 "$(date +\%H):00!" & ogg123 "/home/fahrenheit/Sounds/chime.ogg"
赤い字が書き足したところ。
たとえば10時になるとnotify-sendで「10:00!」と無造作に出しておきつつ保存しておいたチャイム音をogg123コマンドで1回鳴らす。

個人的にはMusicフォルダはもっぱら曲が入っていてゴチャるのでカスタマイズしたい時の効果音系データはSoundsフォルダを作って入れたりしている

ogg123やaplayやmpg123などの音声再生コマンドは出力した音声データ情報をメールで送りつけてくるので、MAILTOを空っぽにして送らないようにした。

notify-sendが出ない問題

notify-sendによる通知は上記 DISPLAY=0:0 を書き込んでいないと通知として画面上に出なかった。(ちなみに上スクショの通知はDunstという通知デーモンによるもの)
「notify-send cron 出ない」とかで調べると、本来CronはもっぱらCUIで動作するやつなので何かしら設定しないとCronが送信した通知情報は虚無の彼方へ飛んでいってしまうらしい。

音が出ればまあいいか…とはなっていたものの、ヘッドホン等を繋げるだけ繋げておいて装着しないで作業しているともちろん時報音が聞こえず時間感覚が崩壊していくため、やっぱり視覚情報も大事。

時間感覚は治るの?

結局は己の気のつけかた次第。でもちょっとだけ気持ちがラクになった。

0 件のコメント:

コメントを投稿