異なるMacOS バージョンかつ Emacs 22 と 23 と共通の init.el にしたかったからこうなったよメモ。
(ここでは使用してない defvar で定義した変数もとりあえず入れとく)
(環境:MacOSX10.6, 10.4, Carbon Emacs 22, Cocoa Emacs 23)
Cocoa Emacs 利用時のみの設定
(defvar is_emacs22 (equal emacs-major-version 22)) (defvar is_emacs23 (equal emacs-major-version 23)) (defvar is_window-sys (not (eq (symbol-value 'window-system) nil))) (defvar is_mac (or (eq window-system 'mac) (featurep 'ns))) (defvar is_carbon (and is_mac is_emacs22 is_window-sys)) (defvar is_cocoa (and is_mac is_emacs23 is_window-sys)) (defvar is_inline-patch (eq (boundp 'mac-input-method-parameters) t)) (defvar is_darwin (eq system-type 'darwin)) (when is_cocoa ;; font setting for Emacs 23 (set-face-attribute 'default nil :family "Monaco" :height 120) (set-fontset-font "fontset-default" 'japanese-jisx0208 '("Osaka" . "iso10646-1")) (set-fontset-font "fontset-default" 'katakana-jisx0201 '("Osaka" . "iso10646-1")) (setq face-font-rescale-alist '((".*Monaco-bold.*" . 1.0) (".*Monaco-medium.*" . 1.0) (".*Osaka-bold.*" . 1.0) (".*Osaka-medium.*" . 1.0) ("-cdac$" . 1.4))) )
font-spec を使わないのは MacOS10.4 環境の Emacs23 で動かなかったから。10.4で23使わないからいいんだけども、いちおう。
切り換える場合の設定(おまけ)
前記の defvar で定義した変数を利用して、環境ごとに切り替え。
以下設定例
(cond (is_carbon (require 'color-theme) (color-theme-initialize) (color-theme-arjen) ) (is_cocoa ;; Aqua Emacs23 not have color-theme.el (require 'color-theme) (color-theme-initialize) (color-theme-dark-laptop) ;; カーソル点滅 (blink-cursor-mode 1) ;; inline patch (when is_inline-patch (setq default-input-method "MacOSX") (mac-set-input-method-parameter "com.apple.keylayout.US" 'cursor-type 'bar) (mac-set-input-method-parameter "com.apple.inputmethod.Kotoeri.Japanese" 'cursor-type '(hbar . 3)) (mac-set-input-method-parameter "com.apple.inputmethod.Kotoeri.Japanese" 'cursor-color "red") ) ;; Drag and Drop (define-key global-map [ns-drag-file] 'ns-find-file) ) )