Kitchen Timer

アキバに来たら、ちょっと足をのばして過橋米線でしょ。絶賛応援中[2007-02-25]→アキバに来たら、米線でしょ。
Last Modified: 2004-12-18 04:44:34

はじめに

kitchen-timer.el は Emacs をタイマにする Elisp です。

こんなかんじ。

使い方

kt-image-dir に数字の画像(ソースに含まれています)が入ったディレクトリを指定し、kt-notice-hookには残り時間がゼロになったときに実行する関数を入れておきます。kt-notice-hookは設定しなくてもかまいません。

設定例:

(setq kt-image-dir "~/site-lisp/kitchen-timer/images")
(add-hook 'kt-notice-hook 'beep)

M-x kitchen-timer でスタート。数字を適当に入れて、s で計測開始。計測途中でもう一度 s を押すと止まります。C-q で終了。C-bでキッチン・タイマのバッファは無くなりますが、計測は続いています。再度M-x kitchen-timer で残り時間の表示を再開できます。

ダウンロード

数字には画像を使っています。その画像を作るために convert コマンドが必要です。

ご自由にお使い下さい → ソース

ログを取る

下のようなログを取るための設定です。

 00:03:00(20:43:14) << ラーメン!!
 00:02:45(20:43:35) -> じれったいな
 00:02:39(20:43:41) <- がまんがまん
 00:01:26(20:44:54) >> 食

設定例:

(defvar kt-log nil)

(defun kt-make-time-string (add-string)
  (let ((time (if (kt-get-start-time)
                  (kt-decode-time (kt-compute-time))
                (kt-get-rest-time))))
    (concat
     (if (nth 3 time) "-" " ")
     (apply 'format "%02d:%02d:%02d" time)
     (apply 'format "(%02d:%02d:%02d) "
            (nthcdr 6 (reverse
                       (decode-time (current-time)))))
     add-string)))

(defadvice kt-toggle-timer (around kt-toggle-timer-around activate)
  (unless (kt-get-timer)
    (setq kt-log (concat kt-log
                         (kt-make-time-string (if (kt-get-start-time)
                                                  "<- " "<< "))
                         (read-from-minibuffer (if (kt-get-start-time)
                                                  "Restart: " "Start: "))
                         "\n")))
  ad-do-it
  (unless (kt-get-timer)
    (setq kt-log (concat kt-log
                         (kt-make-time-string ">> ")
                         (read-from-minibuffer "End: ")
                         "\n"))))

(defadvice kt-background (after kt-background-after activate)
  (insert (or kt-log "") (kt-make-time-string "-> "))
  (setq kt-log nil))

(defadvice kt-quit (around kt-quit-around activate)
  (when (kt-get-timer)
    (setq kt-log (concat kt-log
                         (kt-make-time-string ">> "))))
  ad-do-it
  (when kt-log
    (insert kt-log))
  (setq kt-log nil))

Comments


Creation Date: 2004-01-28 18:46:56
OKUYAMA Atsushi ()