2012年9月6日木曜日

emacsでwindow-systemとversionを判定する

emacsのwindow systemをバージョンでフォントの設定を変更するlisp 

  • carbon emacs等から起動する場合は window-system に値が入る 
  • iterm上で起動する場合は window-system は nil 

window-systemに入る値はM-x emacs-versionで確認できる サンプル
GNU Emacs 23.3.1 (x86_64-apple-darwin, NS apple-appkit-1038.35) of 2011-03-10 on black.porkrind.org
この場合は ns が window-system にセットされている

 init.elに以下を追加する
(cond
 ((or (eq window-system 'ns) (eq window-system 'mac))
  (when (>= emacs-major-version 23)
    (set-face-attribute 'default nil
   :family "monaco"
   :height 140)
    (set-fontset-font
     (frame-parameter nil 'font)
     'japanese-jisx0208
     '("Hiragino Maru Gothic Pro" . "iso10646-1"))
    (set-fontset-font
     (frame-parameter nil 'font)
     'japanese-jisx0212
     '("Hiragino Maru Gothic Pro" . "iso10646-1"))
    (set-fontset-font
     (frame-parameter nil 'font)
     'mule-unicode-0100-24ff
     '("monaco" . "iso10646-1"))
    (setq face-font-rescale-alist
   '(("^-apple-hiragino.*" . 1.2)
     (".*osaka-bold.*" . 1.2)
     (".*osaka-medium.*" . 1.2)
     (".*courier-bold-.*-mac-roman" . 1.0)
     (".*monaco cy-bold-.*-mac-cyrillic" . 0.9)
     (".*monaco-bold-.*-mac-roman" . 0.9)
     ("-cdac$" . 1.3)
     )))))

0 件のコメント:

コメントを投稿