Emacs24で次の動作を実現しようとしています。
実行中のサーバーに端末フレームで接続するかどうかに応じて、異なるテーマ(solarized-dark vs. solarized-light)を使用したい
% emacsclient -t
またはgtkフレーム付き
% emacsclient -c
これは古いEmacsで機能していたようですが、現在のEmacsには方法が見つかりませんでした。私はSO(例えば、確認alreday /programming//q/18904529/152439と回答)とメーリングリスト(例えば、https://lists.gnu.org/archive/html/help-gnu-emacs/ 2012-02 / msg00227.htmlおよびhttps://lists.gnu.org/archive/html/help-gnu-emacs/2012-02/msg00237.html)。
私の現在のセットアップは次のようになります。
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/solarized")
(if (daemonp)
(add-hook 'after-make-frame-functions
(lambda (frame)
(select-frame frame)
(if (display-graphic-p frame)
(load-theme 'solarized-light t)
(load-theme 'solarized-dark t)
)
)
)
(load-theme 'solarized-light t)
)
この問題は、グラフィカルフレームを開いてからでターミナルフレームを開くとemacsclient -t
、テーマsolarized-darkが新しいターミナルフレーム(正しい)と既に開いているグラフィカルフレーム(残すべき)の両方に適用されることです。理想的にはそのまま)。ターミナルフレームが既に開いていて、新しいグラフィカルフレームをで開くと、同等のことが起こりemacsclient -c
ます。
編集:現在のEmacs24でこれが不可能な場合、再び可能にする計画はありますか?
color-theme.el
どのIIRCにフレーム依存のカラー設定があったかをいつでも使用できます。ユビキタス以外に組み込みのテーマ機能を使用することには大きな利点はありません。
color-theme
、Emacs 24テーマシステムと両方のバッファーローカルテーマサポートを提供します。私のバージョンのソラリゼーションテーマは、このルートに進むことにした場合、両方のシステムもサポートします。