Изменить цвет фона Emacs - PullRequest
       25

Изменить цвет фона Emacs

4 голосов
/ 18 апреля 2011

У меня есть функция, которая устанавливает цветовую тему Emacs на тему, определенную мной.В этой функции я делаю:

(set-face-attribute 'default cur-frame :foreground fg-color :background bg-color)

Затем я устанавливаю цвет фона, цвет переднего плана и цвет курсора для default-frame-alist, initial-frame-alist и special-display-frame-alist.

Все это прекрасно работает на моем Mac.Но когда я использую это в Linux, он выглядит хорошо для всех уже открытых кадров, но для вновь созданных кадров это выглядит так:

background color issue

У меня нет этогопроблема с новыми кадрами, если вместо (set-face-attribute 'default ...) использовать функции set-background-color / set-foreground-color.Но если я сделаю это, мне придется вручную сбросить цвета для каждого уже открытого кадра.

Я использую Emacs версии 23.3 как для Mac, так и для Ubuntu.

Для пояснения, это темафайл, который я использую:

my-color.el

Ответы [ 4 ]

4 голосов
/ 18 апреля 2011

set-face-attribute устанавливает, как следует из названия, атрибуты грани (т. Е. Свойства шрифта), а не атрибуты рамки. Используйте

(add-to-list 'default-frame-alist '(background-color . "lightgray"))

и аналогично изменению свойств, связанных с фреймами.

3 голосов
/ 18 апреля 2011
(if (eq system-type 'darwin)
    ;; mac os x settings
  (if (eq system-type 'gnu/linux)
    (setq default-frame-alist '((background-color . "black")
                                (foreground-color . "gray")))))

что-то вроде этого должно помочь вам сохранить настройки для каждой ОС.

1 голос
/ 19 апреля 2011

Кажется, лучше использовать

(custom-set-faces
  '(default ... )
  '(region ... )
  ....
)

стиль, чтобы установить лица, таким образом, у него не будет этой проблемы.

0 голосов
/ 08 июля 2015

Emacs использует 1) (или не закрашивает) фон темы Gtk3.0 в более поздних версиях Emacs. Изменение фона с помощью, например, set-background-color или default-frame-alist работает только до тех пор, пока я не изменю размеры окна, после чего фон темы Gtk снова «просвечивает».

Я пока не смог понять, как заставить emacs всегда закрашивать фон темы Gtk, но, по крайней мере, я нашел способ изменить цвет фона темы Gtk, только для Emacs: https://superuser.com/questions/699501/emacs-showing-grey-background-where-there-are-no-characters/937749#937749

Таким образом, это не полностью решает проблему изменения цвета фона при переключении тем, но по крайней мере вы можете избавиться от черно-белого контраста, который вы испытываете при открытии новых кадров.

1) хотя бы на моей машине:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...