試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

X toolkit(LUCID)版に戻して配色を久しぶりに変更

最近リリースのバージョン22でGTK+(2.x)に対応したEmacsだが、起動時間が短い以外のメリットが見出せない。GUIのファイル選択ダイアログは面倒だし、メニューの日本語化ができてもあまり嬉しくないし。GTK+アプリとしての見た目の統一性はあるかも知れないが重要度は低い。何より、重くなるのが嫌だったので、結局、Xtoolkit/Xaw3dにxpmサポートを付けたもの*1に落ち着いた。軽いし、drag & dropもちゃんとできるし、mule-ucsも必要ない。
22リリースを機に配色を変えてみたので、設定方法のメモも兼ねて。しばらく試してみて気に入らなければ、また以前の「#d3d3d3/#444444」に戻すつもり。まだ変えたばかりなのに、作業のはかどらなさそうな配色のような気もしてきた。
ファイル名: ~/.emacs

(when window-system
  ;;; 初期フレーム(X上の「ウィンドウ」)
  (setq default-frame-alist
    (append
      (list
        '(foreground-color . "#d3d3d3")  ; 文字/前景色
        '(background-color . "#394939")  ; 文字/背景色
        '(scroll-bar-background . "#c6ccc0")  ; Xaw3dではbg色だけ使用される?
        '(cursor-color . "#99d599")  ; カーソル色
        '(font . "\
-milkjf-fixed-medium-r-normal--16-150-75-75-c-160-jisx0208.1990-0")
          ; フレームの幅と高さ
        '(width . 80)   ; 改行が見にくければ81にしてもOK
        '(height . 40)  ; 好みで調整
          ; フレームの幅と高さ
        '(top . 333)    ; 好みで調整
        '(left . 527)   ; 好みで調整
      )
    default-frame-alist)
  )
  ;;; その他の色
  ;; (アクティブ)モードラインの色
  (set-face-foreground 'modeline "#d3d3d3")  ; 前景色
  (set-face-background 'modeline "#557755")  ; 背景色
  ;; 非アクティブモードラインの色(Emacs22)
  (when (>= emacs-major-version 22)
    (set-face-foreground 'mode-line-inactive "#b3b3b3")  ; 前景色
    (set-face-background 'mode-line-inactive "#608060")  ; 背景色
  )
  ;; 選択範囲(リージョン)の色
  (set-face-background 'region "#668666")
)

上の部分は、以下のように書くこともできる。どちらの書き方をするかは好みだが、下の書き方では、条件分岐をさせたりすることもできる。

(when window-system
  ;;; 初期フレーム(X上の「ウィンドウ」)
  ;; 文字/前景色
  (add-to-list 'default-frame-alist '(foreground-color . "#d3d3d3"))
  ;; 文字/背景色
  (add-to-list 'default-frame-alist '(background-color . "#394939"))
  ;; スクロールバー
  (add-to-list 'default-frame-alist '(scroll-bar-background . "#c6ccc0"))
  ;; カーソル
  (add-to-list 'default-frame-alist '(cursor-color . "#99d599"))
  ;; フォント
  (add-to-list 'default-frame-alist '(font . "\
-milkjf-fixed-medium-r-normal--16-150-75-75-c-*"))
  ;; 幅(値の扱いが変わっているために分ける)
  (if (>= emacs-major-version 22)
    (add-to-list 'default-frame-alist '(width . 80))
    (add-to-list 'default-frame-alist '(width . 40))
  )
  ;; ウィンドウ位置の画面上からの長さ
  (add-to-list 'default-frame-alist '(top . 333))
  ;; ウィンドウ位置の画面左からの長さ
  (add-to-list 'default-frame-alist '(left . 527))

  ;;; その他の色
  ;; (アクティブ)モードラインの色
  (set-face-foreground 'mode-line "#d3d3d3")  ; 前景色
  (set-face-background 'mode-line "#557755")  ; 背景色
  ;; 非アクティブモードラインの色(Emacs22以降)
  (when (>= emacs-major-version 22)
    (set-face-foreground 'mode-line-inactive "#b3b3b3")  ; 前景色
    (set-face-background 'mode-line-inactive "#608060")  ; 背景色
  )
  ;; 選択範囲(リージョン)の色
  (set-face-background 'region "#668666")
)

Xtoolkit版ではメニューバーの色やフォントの設定を${HOME}/.Xresourcesでする。適用させるにはxrdbコマンドを次のように実行する*2
(2007/6/14)選択範囲(リージョン)の色設定を追加/端末での起動時(-nw)に色変更をしないように修正
(2007/6/18)add-to-listを使った書き方を追加
(2009/8/4)バージョン23でのpcfフォント使用時に不具合が出ていたのを修正(フォント名の指定)
(2009/9/21)リソース設定ファイルと作業例を好ましい形に修正

$ xrdb -merge ~/.Xresources

ファイル名: ~/.Xresources

emacs.pane.menubar.foreground: #445544
emacs.pane.menubar.background: #d5ddd1
emacs.pane.menubar.font: -mona-gothic-medium-r-normal--12-*-75-75-p-60-iso8859-1

上の設定ではモナーフォントをメニューに使用しているが、好きなフォント名を同じように貼り付ければよい。

*1:「About Emacs」における表示は「x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll bars」。Gentoo LinuxのUSEフラグは「X Xaw3d -alsa -gif -gtk gzip-el -hesiod -jpeg -lesstif -motif -png -sound -source -spell -tiff toolkit-scroll-bars xpm」

*2:Xfce4では自動で行ってくれる