(※)この記事は普段からLinuxデスクトップを使っている人を対象に書いています。Windowsの人はタスクスケジューラかなにかを使うといいと思います
寝ましょう。パソコンを消しましょう。
夜更かしはよくありません。みなさん、早く寝ましょう。
厚労省資料より引用します。
現代生活はシフトワークや長時間通勤・受験勉強・インターネットやゲームをしての夜型生活など、睡眠不足や睡眠障害の危険で一杯です。睡眠不足による産業事故、慢性不眠によるうつ病や生活習慣病の悪化など、睡眠問題を放置すると日中の心身の調子にも支障をもたらします。
また、健康づくりのための睡眠指針 2014 ~ 睡眠12箇条 ~ に基づいた保健指導ハンドブック, 尾崎章子 (東北大学),巽あさみ (浜松医科大学)にも、睡眠の意義や不眠の悪影響がわかりやすくまとめられています。
短時間睡眠が知覚・思考・記憶機能のような認知機能に悪影響を与えることは瀬尾 明彦, 砂川 久弥, 土井 幸輝, 鈴木 哲, 睡眠時間が翌日終日の認知・運動機能に与える影響, ITヘルスケア誌, 2008, 3 巻, 2 号, p. 96-105でも示されています。
時報を鳴らす
とはいえ、なんか知らんけど、パソコン着けてたら、いつの間にか日付変わってるじゃないですか。そこで思いついたのが、アラームを鳴らすことでした。
最近はsystemdでタイマーが使える
Linuxでタイマーといえばcronが有名です。私もcronでタイマーを設定するものだと思っていたのですが、私の使っているArch Linuxではcronはデフォルトではインストールされておらず、代わりにタイマーにはsystemdを使うようです。
最近のLinuxであれば、systemdはインストールされているでしょう。なので、本記事ではsystemdでタイマーを設定します。
え、systemd使うって、じゃあrootでタイマー設定するの?
いいえ、一般のユーザ権限でも
systemctl --user ...
のように設定できます。
設定を行う
では、やっていきましょう。
鳴らす音楽を置く
なんでもいいのですが、クラシックを無償で公開してくださっている方の音源をダウンロードしてくるのがいいかなと思います。長すぎないものがいいです。
どこのディレクトリに置いても基本的には問題ないですが、私は
~/.local/share/sounds
に置きました。
音楽を鳴らすserviceを作る
~/.config/systemd/user
に、拡張子が.service
のファイルを以下のように作ります。ここでは例として、ファイル名を sleep-timer.service
とします。
[Unit]
Description=daily sleep reminder
RefuseManualStart=no
RefuseManualStop=no
[Service]
Type=oneshot
ExecStart=/usr/bin/mpv --no-terminal -vo=null 鳴らしたい音楽ファイルへのパス
音楽プレイヤーは、なんでもいいんですが、私はmpvを使っています。
動作確認をする
systemctl --user daemon-reload
をしてから
systemctl --user start sleep-timer.service
をすると音が鳴るはずです。止めたかったらCtrl-Cをして
systemctl --user stop sleep-timer.service
としたら止まるはずです。
タイマーのファイルを作る
~/.config/systemd/user
に、拡張子が.timer
のファイルを以下のように作ります。ここでは例として、ファイル名を sleep-timer.timer
とします。
[Unit]
Description=daily sleep reminder
RefuseManualStart=no
RefuseManualStop=no
[Timer]
Persistent=false
OnCalendar=*-*-* 0:00:00
[Install]
WantedBy=timers.target
毎日 0:00:00 にタイマーを作動させる、という意味です。
(まったくちょうどには鳴りません。そこは当てにしないでください)
タイマーを有効にする
systemctl --user daemon-reload
systemctl --user enable sleep-timer.timer
systemctl --user start sleep-timer.timer
でタイマーが有効になります。
systemctl --user list-timers
によって、登録されているタイマーの一覧が表示されます。
結果
0時に鳴っても寝なかったので、1時と2時にも鳴らすように設定しました。
ちょうど今、1時のメロディーが鳴っているので寝ます。おやすみなさい。
参考資料
https://wiki.archlinux.jp/index.php/Systemd/%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC
https://wiki.archlinux.jp/index.php/Cron
https://wiki.gentoo.org/wiki/Systemd#Timer_services