如何获取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那样的字符串。
答案 0 :(得分:7)
您可以使用函数frame-parameter
来获取帧的属性。对于您的特定情况,您可以
(frame-parameter nil 'background-mode)
获取当前帧的背景模式。如果使用当前选定的帧为nil,则第一个参数是您想要获取指定参数的帧。你可以做 C-h f frame-parameter
RET