見出し画像

CLIでアラーム: ttimer コマンドの補強

環境設定

デバイス状況: UNIX系
Mac: homebrew, ttimer をインストール
Linux: ttimer を go get で入れる*
ttimerGolang (Go言語) で実装されているそうです
*Go言語のダウンロードは コチラ から

ターミナルでタイマー

ターミナルでタイマーを使いたいな…

Q. スマホのタイマー機能は?
A. 指がキーボードから離れるのを嫌がっている

Q. sleep コマンドを使えば?
A. 終了まであとどれくらいか表示して欲しい

おお、終了までの時間を表示してくれる ttimer という
ものがあるではないか!!
あれ、でも終了時には通知バナーしか出ないぞ…
うたた寝してたら気付かないパターン…

ということで、シェル芸の時間 :)

始めに

ttimer の終了時に音が鳴る仕様のコマンドを作ります
新しく tick という名前でコマンドを作りたいと思います
別の名前がいい場合は下記の tick の部分を適当な名前に変更して下さい :)
まずは以下のコマンドを実行:

cd /usr/local/bin
touch tick
chmod +x tick
which tick # tick コマンドが作成されたことを確認

次はコマンドの編集
好きなエディタで編集開始(今回は nano で):

nano tick

ソリューション①: 音声ファイルで通知

終了時に音声ファイルを実行させるにはコード内容はこんな感じ:

#!/usr/bin/env zsh

# 好きなシバングに設定して下さい

ttimer -q $1
afplay /path/to/media

ソリューション②: tput bel で通知

終了時に tput bel コマンド実行で音が鳴るようにするにはこんな感じ:

#!/usr/bin/env zsh

ttimer -q $1
tput bel

一回しか鳴らないのでは目覚ましとして頼りないので
止めるまで鳴り続ける仕様にしたいですね…
その場合はこんな感じ:

#!/usr/bin/env zsh

ttimer -q $1
for i in $(seq 30) # 好きな回数に変更して下さい
do
tput bel
sleep 1
done

この書き方なら音声ファイルのパスについて考えずに
済むので汎用性があります

使ってみよう

エディタを終了したら、以下のコマンドでコマンド内容を確認:

cat /usr/local/bin/tick

cat の代わりに bat コマンドを使うとハイライト表示されます :)

実行:

tick 30m # 30分後に音が鳴る

# Ctrl + C で終了

*実行ファイルには拡張子(.sh など)をつけないで下さい

まとめ

大したことはしていませんw
シェル芸って程でもないですね
投稿練習をしてみました
感想・ご指摘などお待ちしています↓↓ :)
Twitter: alpineyahoo

感想・ご指摘お待ちしています