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

yet another pomodoro

技術系日記 tmux

つくりました

github.com

いつもどおり英語は適当です。

モチベーション

  • ポモドーロテクニックがやりたかった
  • tmuxのバーに表示したかった
    • ターミナルを全画面で使ってる事が多いのでmacのステータスバーに表示するのは微妙
    • tmuxのバーが一番いいかな?っていう感じで決まった
  • 終わったら通知が欲しかった
    • macユーザーなので右上にピコンと出る系のやつがよかった

対抗馬は?

  • hughbien/thyme: Console Pomodoro timer
    • 使おうとしたんだけど依存関係がちゃんと定義されてなくて普通にやると動かなかった
    • たしかgem installしてレポジトリをとってきてbundle installしてその後bundle exec rakeしてテストを通すとようやく動くようになった
      • 最後の1ステップがマジで謎すぎる
  • ほかはしらない

作ったもの

1秒sleepして、ってやるとどんどんズレるよなー、どうやってんのかなーと悩んでた。悩みながら実装は見ないでthyme使ってた。
あるときgoでループ回しながら指定期間過ぎたら「過ぎたよ」っていうのをchannel経由で送ってくれるやつがいたらそれでよくね?と思いついたので作ってみた。
まだthymeの実装みてないのでどうやってるのかはしらない。

tmuxに出すのはthymeの設定ファイルから察したやり方で。$HOME配下にファイル出してtmuxのステータスバー側でcatで読んでる。

終わったら通知というのは設定ファイルにスクリプトのテキスト書いてそれをexecする感じにした。これもthymeの設定ファイルを参考にしている。スクリプトの中身はterminal-notifierというのを使っている。
julienXX/terminal-notifier: Send User Notifications on Mac OS X 10.8 from the command-line.

直したいところ

  • -dとかでdaemon化したい
    • goでdaemon化するのちょっとめんどくさそうで止まってる
      • 適当にやる分にはできそうだけどどういう問題があるのかよく把握してない
    • 実運用的には gomodoro & でバックグラウンドに飛ばしてる
  • SIGNAL対応
    • SIGINTくらいしか対応してない
    • まあ実用上困らんか……
  • tmux用のファイルは開きっぱなしのほうが効率がいい気がする?
  • 日別のpomodoroカウントとりたい気がする

実は作ったのは結構前で3commitしかないけど1commit目でmain.goは全部できてます。