gnus-eyecandy を使ってモードラインのアイコンを変えてみる
gnus-eyecandy の話 (http://d.hatena.ne.jp/emacsjjj/20050719/p1) の続き。
行間を揃えてみる
eyecandy でアイコンが表示されたグループは行幅が広がって間延びしちゃいますよね。見てくれが売りのツールなのに…。かなりみっともないので対処。
(defadvice gnus-group-icon-create-glyph (around add-center-prop (substring pixmap) activate compile) (let ((cached (cdr-safe (assoc pixmap gnus-group-icon-cache)))) ad-do-it (unless cached (setcdr (car gnus-group-icon-cache) (setq ad-return-value (append ad-return-value '(:ascent center)))))))
モードラインのアイコンを変えてみる
X 上の Emacs で Gnus を使うと mode-line 上にヌーの顔のアイコンが表示されますが、eyecandy 用のアイコンがあるグループならば *summary* と *article* バッファの mode-line にもそれを使ってみたり。
(defadvice gnus-mode-line-buffer-identification (after use-eyecandy-icon activate compile) (when (and (memq major-mode '(gnus-summary-mode gnus-article-mode)) (get-text-property 0 'display (car ad-return-value))) (let ((group gnus-newsgroup-name) (unread 1) ; ここら entry ; へんは active ; それぞれ total ; 調整する info ; 必要あり method ; marked ; mailp ; level ; score ; ticked ; group-age ; (list gnus-group-icon-list)) (while (and list (not (eval (caar list)))) (setq list (cdr list))) (when list (let* ((file (cdar list)) (prop (cdr-safe (assoc file gnus-group-icon-cache)))) (when prop (put-text-property 0 5 'display prop (car ad-return-value))))))))
なんかだんだん派手になってくな……。