読者です 読者をやめる 読者になる 読者になる

きくらげ観察日記

好きなことを、適当に。

M-x termのシェルの色をテーマに合わせる

まずはテーマの配色を調べます。

自分の環境(Ubuntu)では /usr/share/emacs/24.5/etc/themes にテーマのソースコードがあったので、まずはそれを開いて配色を確認します。

(deftheme misterioso
  "Predominantly blue/cyan faces on a dark cyan background.")

(let ((class '((class color) (min-colors 89))))

  (custom-theme-set-faces
   'misterioso
   ;; Ensure sufficient contrast on 256-color xterms.
   `(default ((((class color) (min-colors 4096))
	       (:background "#2d3743" :foreground "#e1e1e0"))
	      (,class
	       (:background "#3a3a3a" :foreground "#e1e1e0"))))
   `(cursor ((,class (:background "#415160"))))
   ;; Highlighting faces
   `(fringe ((,class (:background "#2e3748"))))
   `(highlight ((,class (:background "#338f86" :foreground "#e1e1e0"))))
   `(region ((,class (:background "#2d4948" :foreground "#e1e1e0"))))
   `(isearch ((,class (:background "#fcffad" :foreground "#000000"))))
   `(lazy-highlight ((,class (:background "#338f86"))))
   `(trailing-whitespace ((,class (:background "#ff4242"))))
   ;; Mode line faces
   `(mode-line ((,class (:background "#212931" :foreground "#eeeeec"))))
   `(mode-line-inactive
     ((,class (:background "#878787" :foreground "#eeeeec"))))
   `(header-line ((,class (:background "#e5e5e5" :foreground "#333333"))))
   ;; Escape and prompt faces
   `(minibuffer-prompt ((,class (:foreground "#729fcf" :weight bold))))
   ;; Font lock faces
   `(font-lock-builtin-face ((,class (:foreground "#23d7d7"))))
   `(font-lock-comment-face ((,class (:foreground "#74af68"))))
   `(font-lock-constant-face ((,class (:foreground "#008b8b"))))
   `(font-lock-function-name-face
     ((,class (:foreground "#00ede1" :weight bold))))
   `(font-lock-keyword-face ((,class (:foreground "#ffad29" :weight bold))))
   `(font-lock-string-face ((,class (:foreground "#e67128"))))
   `(font-lock-type-face ((,class (:foreground "#34cae2"))))
   `(font-lock-variable-name-face ((,class (:foreground "#dbdb95"))))
   `(font-lock-warning-face ((,class (:foreground "#ff4242" :weight bold))))
   ;; Buttons and links
   `(button ((,class (:underline t))))
   `(link ((,class (:foreground "#59e9ff" :underline t))))
   `(link-visited ((,class (:foreground "#ed74cd" :underline t))))
    ... (中略)
   `(message-cited-text ((,class (:foreground "#74af68"))))
   `(message-separator ((,class (:foreground "#23d7d7"))))))

(custom-theme-set-variables
 'misterioso
 '(ansi-color-names-vector ["#2d3743" "#ff4242" "#74af68" "#dbdb95"
			    "#34cae2" "#008b8b" "#00ede1" "#e1e1e0"]))

(provide-theme 'misterioso)

下の方にansi-term用の配色の設定がされているのですが、どうもテーマの色ともあわないし、若干見づらいものとなっています。
個人的には通常のソースコードのハイライトと似たような配色にしてほしいので、上のソースコードを見ながら、適当に近い色を設定していきます。

(custom-theme-set-faces
 'misterioso
 ;; `(term-color-black ((t (:foreground ""))))
 `(term-color-red ((t (:foreground "#e67128"))))
 `(term-color-green ((t (:foreground "#74af68"))))
 `(term-color-yellow ((t (:foreground "#ffad29"))))
 `(term-color-blue ((t (:foreground "#34cae2"))))
 `(term-color-magenta ((t (:foreground "#9c1b91"))))
 `(term-color-cyan ((t (:foreground "#00ede1"))))
 `(term-color-white ((t (:foreground "white"))))
 )

テーマにない色は適当に近いものを設定しました。

これでいくらかマシになったはず。