#背景
キッチンタイマーが欲しいなあ。
でもアプリとかだとブラウザ開いたりして常に見ることできないしなあ。
じゃあiPhoneで良いじゃんって思ったけど、つい携帯触っちゃうしダメじゃん!!
常に見えるところで場所を取らないキッチンタイマーが欲しい!
あれ?Macの最上部、ステータスバー良いじゃん!作ってみよ!
こういう流れで作ってみました。
#作り方
こちらの記事を参考にしました。
https://qiita.com/hartmann16325/items/8667611fcaf68b9a948b
僕はpythonを使うので調べたところ、rumpsというライブラリを使えばステータスバーでの操作が可能とのこと。
GitHubにあげているのでよかったらどうぞ!
https://github.com/tokky08/Kitchen_timer
@rumps.clicked(u'30分')
def selectTimer(sender):
global minute
minute = 30
global start
start = time.time()
ここでメニューバーの作成です。
@rumps.timer(1)
def dispTimer(sender):
timer_minute = str(minute-1)
timer_second = str(second - int(time.time() - start) % 60)
remaining_minute = int(time.time() - start) // 60
timer_minute = str(int(timer_minute) - remaining_minute)
if int(timer_minute) < 0:
app.title = "TIME UP"
if int(timer_minute) == -1 and int(timer_second) == 58:
rumps.notification(message="作業をやめてください!!!", title="TIME UP!", subtitle="")
else:
if int(timer_second) < 10:
timer_second = "0" + timer_second
app.title = "残り時間:" + timer_minute + ":" + timer_second
ここでこの関数が1秒ごとに実行されます。
分と秒に分けて考えています。
分は、time.time()-start
はカウントダウンし始めからこの関数が実行された時間を引いた秒数が計算されます。
そして、second
はここでは59としています。
second-int(time.time()-start)
で1秒ずつ減っていくことを表しています。
%60しているのはマイナス表示にならないためです。
秒は、remaining_minute
で経過した分を表しています。
それを選択したタイムから引くことで残りの分を表すことができます。
#まとめ
思い立ってあれこれ調べて6時間かけて完成しました。
簡単そうに見えてもいざ作ろうとなるといくつか試練が出てきますね。
それでもアイデアを具現化することができてプログラミングは面白いな!と思います。
何か誤り等あればご指摘よろしくお願いいたします。