Emacs: отключить цвет фона темы в терминале
Я хочу, чтобы emacs не имел цвет фона при открытии фрейма в терминале. Я использую терминал с полупрозрачным фоном, а символы с цветом фона не являются "сквозными". TERM установлен на "xterm-256color".
Как мне заставить emacs использовать цвет фона по умолчанию (без какого-либо цвета), когда кадр не является графическим?
Edit:
У меня есть это, вроде:
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
(load-theme 'my-awesome-theme t)
(defun on-frame-open (frame)
(if (not (display-graphic-p frame))
(set-face-background 'default "unspecified-bg" frame)))
(on-frame-open (selected-frame))
(add-hook 'after-make-frame-functions 'on-frame-open)
Я помещаю вышеуказанный код в свой файл инициализации, но только подавляет фон при открытии emacsclient в терминале, а не сам emacs (т.е. только при вызове с emacsclient -t
, а не при вызове с emacs
). Добавление дополнительного (unless window-system (set-face-background 'default "unspecified-bg" (selected-frame)))
не работает и только путает графические фреймы.
Любые идеи о том, почему это может произойти?
Ответы
Ответ 1
(defun on-after-init ()
(unless (display-graphic-p (selected-frame))
(set-face-background 'default "unspecified-bg" (selected-frame))))
(add-hook 'window-setup-hook 'on-after-init)
В сочетании с кодом в вашем редактировании он отлично работал у меня как для emacsterms, так и для недавно созданного emacsen. Что касается причин window-setup-hook
:
http://www.gnu.org/software/emacs/manual/html_node/elisp/Startup-Summary.html
(ни один из ранних крючков, казалось, не работал, кроме этого).
Ответ 2
Я попробовал метод, предложенный в этом ответе, но мне не повезло, что он работает. этот фрагмент работает для меня, хотя
(defun on-frame-open (&optional frame)
"If the FRAME created in terminal don't load background color."
(unless (display-graphic-p frame)
(set-face-background 'default "unspecified-bg" frame)))
(add-hook 'after-make-frame-functions 'on-frame-open)
Хотя у этого есть неудача, если у терминала есть другие настройки фона, чем тема, которую я использую (темный против света), используются грани темы темы по умолчанию, которые могут не казаться хорошими на светлом или темном фоне. но в моем случае, когда оба терминала и тема темные, он отлично работает.