Estoy tratando de lograr el siguiente comportamiento en Emacs24:
Me gusta usar un tema diferente (solarized-dark vs solarized-light) dependiendo de si me conecto al servidor en ejecución con un marco de terminal
% emacsclient -t
o con un marco gtk
% emacsclient -c
Esto parece haber funcionado en Emacs anteriores, pero en el Emacs actual no pude encontrar una manera. Ya verifiqué SO (por ejemplo, /programming//q/18904529/152439 y respuestas) y las listas de correo (por ejemplo, https://lists.gnu.org/archive/html/help-gnu-emacs/ 2012-02 / msg00227.html y https://lists.gnu.org/archive/html/help-gnu-emacs/2012-02/msg00237.html ).
Mi configuración actual se ve así:
(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)
)
El problema con esto es que si tengo un marco gráfico abierto y luego abro un marco terminal con emacsclient -t
, el tema solarized-dark se aplica tanto al nuevo marco terminal (que es correcto) como al marco gráfico ya abierto (que debería dejarse intacto, idealmente). El equivalente ocurre cuando un marco terminal ya está abierto y abro un nuevo marco gráfico con emacsclient -c
.
EDITAR: En caso de que esto no sea posible con Emacs24 actual, ¿hay algún plan para hacerlo posible nuevamente?
color-theme.el
qué IIRC tenía una configuración de color dependiente del marco. No hay una gran ventaja en el uso de las capacidades incorporadas de temas aparte de la ubicuidad.
color-theme
y los sistemas de temas Emacs 24. Mi versión del tema solarizado también es compatible con ambos sistemas, si decides seguir esta ruta.