Я намагаюся досягти такої поведінки в Emacs24:
Мені подобається використовувати іншу тему (соляризовано-темно проти соляризованого світла) залежно від того, підключуюсь до запущеного сервера з термінальною рамкою
% emacsclient -t
або з кадром gtk
% emacsclient -c
Це, здається, працювало в старих Emacs, але в поточному Emacs я не міг знайти спосіб. Я alreday перевірив SO (наприклад, /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
.
EDIT: Якщо це неможливо з поточним Emacs24, чи є якісь плани зробити це знову можливим?
color-theme.el
якому IIRC були встановлені кольорові параметри кольору. Немає великої переваги у використанні вбудованих можливостей тематизації, крім повсюдності.
color-theme
і тематичних систем Emacs 24. Моя версія соляризованої теми також підтримує обидві системи, якщо ви вирішили пройти цей маршрут.