created: 2019-06-13 00:00:00,tags:emacs,spacemacs,spaceline,

Emacs のモードラインを Spacemacs 風にする

Emacs のモードラインを色々編集する事は面倒臭い (難しい) けど、標準のは 2020 年にもなろうかというにはちょっと... という感じの人向け。

Powerline を使えばカスタマイズできて格好良く、良い感じになるのは大分知れ渡っていると思うし、色々な所で見るけど、Spacemacs のモードラインを使う話を全然見ないので書いてみた。

Spacemacs

大分有名だし、今回のメインは見た目の話なので詳細説明は省く。

spacemacs.png 引用: https://github.com/syl20bnr/spacemacs/blob/master/doc/img/spacemacs-python.png

この画像の下の部分 (mode が並んでいる部分) は実はパッケージ化されており、別で管理されているため、個別で使う事ができる。

powerline.el で実装されているので同様の事は頑張れば出来るが非常に面倒くさいため、あまりオススメしない (簡単に使う事は出来るけど、その場合 Spacemacs くらいの洗練された感じはなかなかでない)。

Spaceline

そこで使うと良いのが、Spaceline。 Spaceline は Spacemacs のモードラインだけを管理しているパッケージで、位置付けは powerline のテーマの 1 つとなる。

Spaceline もある程度カスタマイズが必要だけど、おおよそはデフォルトで使えるレベルで、セパレータ (Spacemacs の画面だと、/ スラッシュ区切りになっているところ) の設定や、カラーテーマ等、あまり細かく設定しなくても大雑把に設定できるのが良い。

カスタマイズ

細かく触ろうとすると色々困る事が多いのは間違いなく、ソース読んだりドキュメントと睨めっこは必要だが、下記記事はサンプルが色々あって分かり易かった。多分 Spaceline の貴重な情報源だと思う。

因みに僕はこういう設定にしている。

(use-package spaceline-config
  :init
  (progn
    (setq powerline-default-separator 'slant)
    ;; anti aging power-line.
    (setq ns-use-srgb-colorspace nil))
  :config
  (progn
    (spaceline-emacs-theme)))

;; paradox mode on
(spaceline-toggle-paradox-menu-on)

;; anti aging power-line.
;; (setq ns-use-srgb-colorspace t)
(mode-icons-mode)
(setq mode-icons-grayscale-transform nil)

(use-package spaceline-config)
(setq powerline-height 16)

(spaceline-emacs-theme)

現在の画面。

emacs-modeline)