x-now-doing.el の導入と使い方(ここ。これも新堂さんの日記さんね) に書いてあったので簡単に触発される。まぁ、mpg123 とか使ってると自動でそのタグを入力できるんだろうけど、Windows で Meadow 、mp3 プレイヤーとしてlilithを使っているわたしは……
X-Now-Playing:を、手書き?
そんなのはかなり嫌なので、適当にタイトルを得るプログラムを Lilith に付いてたソースを書き換えて作ってみる。そして、以下の関数を作る。
(defun lilith-get-title () (save-excursion (let ((nbuf (get-buffer-create "*lilith title*")) (title) (ret 0)) (setq ret (call-process "lilithtitle" nil nbuf)) (set-buffer nbuf) (setq title (if (and (eq ret 0) (>= (point-max) 10)) (buffer-substring 9 (- (point-max) 1)) "not playing")) (kill-buffer nbuf) title )))
さらに、wanderlust 使いなら、
(setq wl-draft-config-alist
'(
(t
("X-Now-Playing" . (lilith-get-title))
)))
と追加するだけ(って長いな)。
で、問題の lilithtitle のソースはこれ。