Emacsでポモドーロテクニック

この記事は Emacs Advent Calender 2012 15日目の記事です。

ポモドーロテクニックとは

時間管理術の一つで、25分に区切って作業を進めていくものです。

参考

Pomodoro Technique - Wikipedia, the free encyclopedia

アジャイルな時間管理術 ポモドーロテクニック入門

アジャイルな時間管理術 ポモドーロテクニック入門

Emacsポモドーロテクニック

いくつか実装はありますが、ここは拙作のものを紹介します。


emacs-utils/pomodoro.el at master · syohex/emacs-utils · GitHub

ダウンロードはこちらからお願いします。

同機能の拡張

私の書いたものが優れているというわけでもないので、興味がある人は自分に
あったものを探してみるとよいでしょう。

使い方

基本的には作業の開始である "pomodoro:start"コマンドだけです。

  M-x pomodoro:start

なお C-uプレフィックスをつけると作業時間を自分で設定することが
できます。停止のための "pomodoro:stop"とかありますが、あまり
使うべきではないでしょう。

設定

デフォルトでは時間に関するものは標準的なものにしています。
作業時間 25分、休憩時間 5分、4回繰り返したら長期休憩、としています。

その他いくつかパラメータがあるので、それを含めた設定例を示します。

;; 作業時間終了後に開くファイル。デフォルトでは "~/.emacs.d/pomodoro.org"
(setq pomodoro:file "~/.emacs.d/mywork.txt")

;; 作業時間関連
(setq pomodoro:work-time 25
      pomodoro:rest-time 5
      pomodoro:long-rest-time 30)

;; hook関数関連
(require 'notifications) ;; Linuxで DBUSがある環境のみ
(defun* my/pomodoro-notification (&key (title "Pomodoro")
                                       body
                                       (urgency 'critical))
  (notifications-notify :title title :body body :urgency urgency))

;; 作業終了後の hook
(add-hook 'pomodoro:finish-work-hook
          (lambda ()
            (my/pomodoro-notification :body "Work is Finish")))

;; 休憩終了後の hook
(add-hook 'pomodoro:finish-rest-hook
          (lambda ()
            (my/pomodoro-notification :body "Break time is finished")))

;; 長期休憩後の hook
(add-hook 'pomodoro:long-rest-hook
          (lambda ()
            (my/pomodoro-notification :body "Long Break time now")))

イメージ

modelineの左の方を見てください。pomodoro:startを実行すると作業時間が表示され
カウントダウンしていきます。


休憩中の画面です。休憩時間がカウントダウンされます。作業をまとめるなり、
コーヒーを入れるなり、トイレにいくなりしましょう。

おわりに

Emacsでの作業時間管理を行う方法を紹介しました。正直自分でも
使いこなせてはいません。少しでもヤル気を高めるために自分で拡張を
書いたりもしたんですけど、たまにしか使えていないという感じです。
気が散りやすい人間なのでそこを叩きなおして、自分でもっとうまく
活用できるようにしたいです。


明日の担当は @さんです。楽しみですね。