Постоянно переопределить цвет фона темы Emacs

9

Я хочу использовать тему Emacs billw , кроме как с другим цветом фона. У меня есть следующее в моем .emacsфайле:

(require 'color-theme)
(color-theme-initialize)
(color-theme-billw)
(set-background-color "gray12")

Однако это не меняет цвет фона при запуске; Мне нужно вручную запустить set-background-color "gray12"минибуфер в начале каждого сеанса.

Любая помощь с этим? Я попытался создать свою собственную тему на основе результатов, color-theme-printно это вызвало больше проблем, чем оно того стоит ...

Джон Дж. Камиллери
источник

Ответы:

5

color-theme-billwФункция внутренне использует color-theme-install-frame-paramsфункцию изменения параметров кадра. Таким образом, вы можете изменить параметры фрейма так же, как показано ниже:

(require 'color-theme)
(color-theme-initialize)
(color-theme-billw)
(color-theme-install-frame-params
  '((background-color . "gray12")))

C-hfcolor-theme-install-frame-params

(color-theme-install-frame-params PARAMS)

Измените параметры кадра, используя alist PARAMETERS.

Если color-theme-is-globalне ноль, все кадры модифицируются с использованием modify-frame-parametersи к ним PARAMETERSдобавляется префикс default-frame-alist. Значение initial-frame-alistне изменяется. Если color-theme-is-globalноль, только выбранный кадр изменяется. Если color-theme-is-cumulativeноль, параметры кадра восстанавливаются из color-theme-original-frame-alist.

Если текущие параметры кадра имеют параметр minibufferсо значением only, то параметры кадра не устанавливаются, поскольку это указывает на выделенный кадр минибуфера.

DKIM
источник
3

Поместите курсор (« точка » на языке GNU Emacs), где вы хотите установить «фон». Предпочтительно там, где нет отображаемого текста. Затем введите M-x describe-face.

Emacs скажет вам лицо ведьмы (все, что может отображать Emacs GNU, имеет «лицо»), на которое вы смотрите. Скорее всего "по умолчанию". Затем в нижней части окна нажмите «Вы можете настроить это лицо».

Вы сейчас "в настройке ". (это просто своего рода мастер для получения / установки значений из / в ваши ~ / .emacs ) Установите нужный цвет фона, затем нажмите «Сохранить для будущих сессий».

Там у вас есть это. Теперь посмотрите на нижнюю часть вашего ~ / .emacs, внутри (custom-set-faces ...), это ваше определение лица.

Кстати , color-theme теперь как - то встроена в GNU Emacs 24 . У меня есть это в моем .emacs:

(custom-set-variables

...stuff...

 '(custom-enabled-themes (quote (tango-dark)))

...stuff...)
yPhil
источник
2
В этом случае оказывается, что вам нужно сделать следующее:(custom-set-faces `(default ((t (:background "gray13")))))
Джон Дж. Камиллери