読者です 読者をやめる 読者になる 読者になる

Tea is ready - Command line kitchen timer for OS X Mavericks

OS X のターミナルからコマンドラインで使うタイマーコマンドを作ってみました。 ウィジェットiPhone アプリなど探せばいくらでもあるのでしょうが、たとえばカップ麺を作る時にお湯を入れてから探して起動してセットしたりしていると、それだけで1分近く経っちゃうんですね。

https://github.com/kaz-utashiro/tir

This is the command line kitchen timer for Apple OS X Mavericks. It will show the message on terminal, notification center, and read it out using audible speech. Default message is "Tea is ready" and the word "tea" is replaced by the command argument. If the first argument is number, command wait that time in second. Playing iTunes is paused automatically during speech.

Mavericks では AppleScript から通知センターの機能が利用できるようになったらしいのでそれを使って。 名付けて TIR (Tea Is Ready)。 これなら秒速で実行可能です。 英国文化圏では、お茶はもちろん、ご飯の準備ができたときにも "Tea is ready" と言うのだそうです。

最初は alias だったのが、徐々に複雑になってきたので sh になって、それも破綻してきたので、生まれて初めての bash スクリプトになりました。 というかシェルスクリプトで関数を使ったのが初めてで、関数がコマンドのように振る舞うのも知らなかった。

使い方は簡単で

tir

と実行すると、Tea is ready と表示すると共に、通知センターにメッセージを表示し、ついでに say(1) コマンドを使って内容を読み上げます。

tir 180

とすると180秒待ってからメッセージを表示します。

tir 3m Your ramen

とすると、3分経ってから Your ramen is ready と言ってくれます。

デフォルトの声が気に入らない場合には

tir -v Hysterical

のように声を指定することができて、

tir -r 5min Noodle

と -r オプションを指定すると、毎回ランダムに声を選びます。 スピーカーのボリュームが小さくなっているかもしれない場合は、

tir -V100

のように -V オプションで一時的にボリュームを上げることもできます。 システムの音量を変更するので音楽を再生しているような時には突然大きな音になってしまうので注意が必要です。 iTunes については再生中であれば一時的にポーズするようにしてありますが、それ以外のアプリのことはわかりません。

いつもターミナルを開いている人にだったら結構使えるんじゃないでしょうか。

ロングバージョン

さて、-v オプションで選べる声中には結構面白いものも入っていて、選択リストは

say -v ?

と実行すると見ることができます。

この中の Good News という声を使うとなかなかゴージャスな感じになることを発見しました。 ラーメンが出来上がったことを威風堂々のメロディにのせて歌い上げてくれるので、モチベーションも高まるのではないでしょうか。 こんな風に実行してみます。

tir -w 3min -v good -m 'ramen is ready ee ramen is ready, your ramen is ready ramen is ready'

結果はこうなりますw。 画像は手持ちの写真をテキトーに並べてみました。


Ramen is ready - YouTube

参考

通知センターを利用するのはこの記事が詳しい。

上の記事でも紹介されていますが、コマンドラインから利用するにはこんなツールがある。 大げさなので使ってませんが。