Xtermでemacsclient -t -a ''
を使用することもあれば、GUIアプリケーションとしてemacsclient -c
を使用することもあります。私を悩ませているのは、emacsサーバーの起動時にフォント設定とカラーテーマが初期化されるため、window-system
テストが有効にならないことです。
それで、emacsclientに顔の設定を選択させるために利用できる機能はありますか?
ありがとう。
フォローしてみてください この投稿 、彼らは同様の問題について話している。
これが投稿の抜粋です(私は自分で試しませんでした):
;; last t is for NO-ENABLE
(load-theme 'tango t t)
(load-theme 'tango-dark t t)
(defun mb/pick-color-theme (frame)
(select-frame frame)
(if (window-system frame)
(progn
(disable-theme 'tango-dark) ; in case it was active
(enable-theme 'tango))
(progn
(disable-theme 'tango) ; in case it was active
(enable-theme 'tango-dark))))
(add-hook 'after-make-frame-functions 'mb/pick-color-theme)
;; For when started with emacs or emacs -nw rather than emacs --daemon
(if window-system
(enable-theme 'tango)
(enable-theme 'tango-dark))
すべてがうまくいけば、次のようになります。
https://www.emacswiki.org/emacs/CustomizingFaces で述べたように
「ディスプレイごとに異なる配色が必要な場合は、これもカスタマイズできます。カスタマイズバッファーで、[状態]ボタンをクリックし、[すべてのディスプレイ仕様を表示]を選択します。これで、ディスプレイごとに異なる仕様を使用できます。」
私にとっては、主に背景色が問題でした。
フレームがttyの場合、default
の顔の背景色を黒にカスタマイズするための最小限のバリエーションを次に示します。
(custom-set-faces
'(default (
(((type tty) (min-colors 256))
(:background "black"))
(t
(:background "#181a26")))
))
black
は、256色以下のtty
に表示された場合にのみ一致します。デフォルトでは、特別な青の色合いが背景色として使用されます。
default
面だけでなく、他のすべての面にも同じ手法を使用できます。