per-buffer-theme 20160318.1501(in MELPA)
Change theme according to buffer name or major mode.

概要

編集するファイルによってテーマを切り替えるというのは、
気分転換になっていいかもしれません。

あるいはいつも使っているテーマでも
特定のモードでの設定が気に入らないこともあります。

そんなときには per-buffer-theme.el をおすすめします。

カラーテーマの切り替え方法は昨日の記事 を参考にしてください。

20150427044650.png
Fig1: 普段はデフォルトのテーマ

20150427044655.png
Fig2: 条件を満たすバッファに変更・切り替えたらテーマを切り替える

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてper-buffer-themeを使う方は
以下のコマンドを実行します。

M-x package-install per-buffer-theme

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name per-buffer-theme

設定 150427041330.per-buffer-theme.el(以下のコードと同一)

(require 'per-buffer-theme)
;;; バッファ名がこれらに一致しているときは動作させない
(setq per-buffer-theme/ignored-buffernames-regex
      '("\\*mini" "\\*Mini" "\\*helm" "\\*Helm"
        "\\*anything" "\\*Anything"
        "One-Key" "guide-key"))
;;; デフォルトのtheme
(setq per-buffer-theme/default-theme 'whiteboard)
;;; 設定!
;;; バッファ名がbuffernamesに一致するか、
;;; メジャーモードがmodesに一致するかでthemeを決定する
(setq per-buffer-theme/themes-alist
      '(((:theme . notheme)             ;テーマを解除
         (:buffernames . ("*eww" "*w3m" "*mu4e"))
         (:modes . (eww-mode w3m-mode cfw:calendar-mode mu4e-main-mode mu4e-headers-mode mu4e-view-mode mu4e-compose-mode mu4e-about-mode mu4e-update-mode)))
        ((:theme . tango-dark)
         (:buffernames . ("*Help*"))
         (:modes . (nil)))
        ;; マッチしない場合は per-buffer-theme/default-theme を採用
        ))
;;; other-windowでもthemeを切り替えさせる
(defun per-buffer-theme--after-advice(&rest _)
  (per-buffer-theme/change-theme-if-buffer-matches))
;; ウィンドウを切り替える他のコマンドでもアドバイスを追加する必要があるかもしれない
(advice-add 'other-window :after 'per-buffer-theme--after-advice)

実行方法

$ wget http://rubikitch.com/f/150427041330.per-buffer-theme.el
$ emacs -Q -f package-initialize -l 150427041330.per-buffer-theme.el


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。