Estou tentando alcançar o seguinte comportamento no Emacs24:
Gosto de usar um tema diferente (solarizado-escuro vs. solarizado-luz), dependendo de eu me conectar ao servidor em execução com um quadro de terminal
% emacsclient -t
ou com um quadro gtk
% emacsclient -c
Isso parece ter funcionado no Emacs mais antigo, mas no Emacs atual eu não consegui encontrar uma maneira. Eu já verifiquei o SO (por exemplo, /programming//q/18904529/152439 e respostas) e as listas de discussão (por exemplo, https://lists.gnu.org/archive/html/help-gnu-emacs/ 2012-02 / msg00227.html e https://lists.gnu.org/archive/html/help-gnu-emacs/2012-02/msg00237.html ).
Minha configuração atual é assim:
(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)
)
O problema com isso é que, se eu tiver um quadro gráfico aberto e, em seguida, abrir um quadro de terminal emacsclient -t
, o tema escuro-solarizado será aplicado ao novo quadro de terminal (correto) e ao quadro gráfico já aberto (que deve ser deixado intocado, idealmente). O equivalente acontece quando um quadro terminal já está aberto e eu abro um novo quadro gráfico com emacsclient -c
.
EDIT: Caso isso não seja possível com o Emacs24 atual, existem planos para torná-lo possível novamente?
color-theme.el
IIRC que possui configurações de cores dependentes do quadro. Não há grande vantagem em usar os recursos de temas embutidos além da onipresença.
color-theme
sistemas temáticos Emacs 24. Minha versão do tema solarizado também suporta os dois sistemas, se você decidir seguir esse caminho.