Ich versuche in Emacs24 folgendes Verhalten zu erreichen:
Ich verwende gerne ein anderes Thema (Solarized-Dark vs. Solarized-Light), je nachdem, ob ich mit einem Terminal-Frame eine Verbindung zum laufenden Server herstelle
% emacsclient -t
oder mit einem GTK-Rahmen
% emacsclient -c
Dies scheint in älteren Emacs funktioniert zu haben, aber mit den aktuellen Emacs konnte ich keinen Weg finden. Ich alreday geprüft SO (zB /programming//q/18904529/152439 und Antworten) und die Mailinglisten (zB https://lists.gnu.org/archive/html/help-gnu-emacs/ 2012-02 / msg00227.html und https://lists.gnu.org/archive/html/help-gnu-emacs/2012-02/msg00237.html ).
Mein aktuelles Setup sieht so aus:
(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)
)
Das Problem dabei ist, dass, wenn ich einen Grafikrahmen geöffnet habe und dann einen Terminalrahmen mit öffne emacsclient -t
, das Thema solarized-dark sowohl auf den neuen Terminalrahmen (der korrekt ist) als auch auf den bereits geöffneten Grafikrahmen (der belassen werden sollte) angewendet wird unberührt, idealerweise). Das Gleiche passiert, wenn ein Terminal-Frame bereits geöffnet ist und ich einen neuen Grafik-Frame mit öffne emacsclient -c
.
EDIT: Falls dies mit dem aktuellen Emacs24 nicht möglich ist, gibt es Pläne, dies wieder zu ermöglichen?
color-theme.el
welchem IIRC rahmenabhängige Farbeinstellungen vorgenommen wurden. Abgesehen von der Allgegenwart bietet die Verwendung der integrierten Theming-Funktionen keinen großen Vorteil.
color-theme
pufferlokale Themen sowohl für das Emacs 24-Themensystem als auch für das Emacs 24-Themensystem. Meine Version des solarisierten Themas unterstützt auch beide Systeme, wenn Sie sich für diesen Weg entscheiden.