Как получить фоновый тип Emacs? например, "светлый" или "темный"

Как получить фоновый тип Emacs? например 'light или же 'dark

Вы можете определить лицо как это:

(defface moedict-type
  '((((class color) (background light))
     (:foreground "#ffffd7" :background "#525252"))
    (((class color) (background dark))
     (:foreground "#525252" :background "#c1c1c1")))
  "Face for type. ex: [動]、[名]")

И Emacs автоматически выберет правильную грань шрифта по текущему типу фона. Но я хочу знать, как это сделать. (Лучше, если в Emacs есть встроенная функция)

Кстати, я пытаюсь найти в исходном коде и нашел функцию (frame-background-color), но ее вывод - строка типа "#ffffff".

1 ответ

Решение

Вы можете использовать функцию frame-parameter чтобы получить атрибуты кадра. Для вашего конкретного случая вы можете сделать

(frame-parameter nil 'background-mode)

Получить фоновый режим текущего кадра. Первый параметр - это кадр, для которого вы хотите получить указанный параметр, если nil используется текущий выбранный кадр. Вы можете сделать ChFframe-parameterRET

Другие вопросы по тегам