平衡点


2014/12/20

_ モードラインのダイエット (2/n)

昨日 の続き。

DDSKK のモード表示,その2

昨日の advice に付け加えて,安直だけれど major-mode の切替時に一度 skk を呼ぶことで modeline を更新することに. ~/.skk

(defadvice skk-make-indicator-alist
    (after my:set-skk-default-indicator activate)
  (dolist (elem
           '((abbrev " [aA]" . "--[aA]:")
             (latin " [_A]" . "--[_A]:")
             (default " [--]" . "--[--]:")))
    (setq ad-return-value
          (append (cons elem nil)
                  (delq (assoc (car elem) ad-return-value) ad-return-value)))))

~/.emacs.d/init.el

(defun my:update-modeline-for-ddskk ()
  ""
  (progn
    (skk-mode) (skk-mode)))
(add-hook 'after-change-major-mode-hook 'my:update-modeline-for-ddskk)

かっこ悪いなぁ….トグルする関数無かったっけ?

elscreen

上に TAB を表示させているので,modeline に番号を表示する必要はない. modeline に番号を表示するかどうかについての設定は

(setq elscreen-display-screen-number nil)

で良い.

良い…のだが,初回起動時に常に mode-line-format が更新されている. これは require された時に

(let ((point (memq 'mode-line-position mode-line-format))
      (elscreen-mode-line-elm '(elscreen-display-screen-number
                                (" " elscreen-mode-line-string))))
  (when (null (member elscreen-mode-line-elm mode-line-format))
    (setcdr point (cons elscreen-mode-line-elm (cdr point)))))

が実行されているから. 安直にはこれをコメントアウトすれば良いのだけれど,なんか良い方法無いかなぁ….

major-mode, minor mode の表示設定

カスタマイズする際には以下を参考に

考えてみれば minor-mode の表示は見ていないので,全部非表示にしても全く問題無い.というわけで, ~/.emacs.d/init.el

(defvar my:mode-line-cleaner-alist
  '(
    ;; major,
    (global-whitespace-mode . "")
    (lisp-interaction-mode  . "LI")
    (emacs-lisp-mode        . "EL")
    ;; ...
    ))
(defun my:clean-mode-line ()
  (interactive)
  (setq minor-mode-alist nil)
  (loop for (mode . mode-str) in my:mode-line-cleaner-alist
        do
        (when (eq mode major-mode)
          (setq mode-name mode-str))))
(add-hook 'after-change-major-mode-hook 'my:clean-mode-line)

としてみたり.

結果

結局,こんな感じ.

mode-lineのカスタマイズ結果

時計とか行数は全く表示させていないので,右側がとってもシンプルだけれど,まあ良いか,という.


連絡先など
最近の日記
  • 2024/10/09
    • 1. Mastodon でのメール通知, というか Exim4 と Apparmor
  • 2024/06/19
    • 1. WSL2 での gpg-agent, ssh-agent
  • 2024/06/18
    • 1. WSL で Windows 側のフォントを利用する
  • 2024/06/17
    • 1. WSLとWindowsの時刻同期
  • 2024/06/12
    • 1. wsl2 で systemd
    • 2. wslg の設定
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|04|05|06|10|
Back to Top ▲