如何获得Emacs的背景类型?例如'光明或'黑暗

时间:2014-02-17 16:41:43

标签: emacs elisp

如何获取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 个答案:

答案 0 :(得分:7)

您可以使用函数frame-parameter来获取帧的属性。对于您的特定情况,您可以

(frame-parameter nil 'background-mode)

获取当前帧的背景模式。如果使用当前选定的帧为nil,则第一个参数是您想要获取指定参数的帧。你可以做 C-h f frame-parameter RET