GTDの規律には、3分以内に片付くタスクはその場で処理して、3分以上かかるものはとりあえずInboxにつっこむというものがある。
コマンドラインからストップウォッチを3分だけ起動したいと思い、そのような方法を考えました。
environment
- Linux Mint 16
sleep を利用
あまり考えない方法だと、sleepコマンドで時間を止めて、指定時間たつとコマンドを実行するというもの。
$ sleep 3 && echo test
echoだと気づかないので、できれば音やデスクトップ通知が欲しいところだ
cvlcを利用して音を出す
VLCプレーヤーのコマンドラインを利用して音を鳴らす。–play-and-exitで一回だけ再生。
$ cvlc --play-and-exit /usr/share/sounds/LinuxMint/stereo/desktop-login.ogg
notify-sendでデスクトップ通知
Linuxでは、send-notifyでデスクトップ通知ができる。
インストール
notify-sendは libnotify-binに含まれている。
$ sudo apt-get install libnotify-bin
以下で実行して、通知か表示されるか確認
$ notify-send test
notification-daemonのインストール
Gnome terminalからコマンドを実行すると動作するが、Guakeターミナルから実行すると、動作しない。
原因は欲分からないが、notification-daemonというものをインストールすると、Guakeからも動作するようになった。
$ sudo apt-get install notification-daemon
デーモンを起動する。
$ /usr/lib/notification-daemon/notification-daemon &
これで通知がでるようになった。時間指定のオプション -t が動作しないのが気になるが。。。
起動時にデーモン起動
notify-osdからnotification-daemonに切り替える | smokycat.infoを参考に、起動時にデーモンを起動するようにしてみる。
$ sudo emacs /usr/share/dbus-1/services/org.freedesktop.Notifications.service
3行目をコメントアウトして、4行目を追加。どうも、デフォルトでは notify-osdが起動していたようだ。notify-osdだと動かなかったと推測
[D-BUS Service]
Name=org.freedesktop.Notifications
#Exec=/usr/lib/x86_64-linux-gnu/notify-osd
Exec=/usr/lib/notification-daemon/notification-daemon
タイマを改良
コマンドラインから利用できるカウントダウンタイマを探してみた。。結構時間をかけて探したけれども、結論としては、このツールがよい。
コマンドラインからカウントダウンやストップウォッチが起動できる。こんなツールを探していた!ダウンロードしてインストール。
$ ./configure
$ make && make install
たとえば、こんな感じ。
# 3sec countdowwn
% utimer -c 3
Time Remaining: 0 days 00:00:00.000 (0.000 seconds)
結論
このワンラインスクリプトに決定
/bin/sh -c 'sleep 180;notify-send "time over";cvlc --play-and-exit /usr/share/sounds/LinuxMint/stereo/desktop-login.ogg' &