如何获取Emacs的背景类型?例如,'light'或'dark'。

9
如何获取Emacs的背景类型?例如'light'dark
您可以像这样定义一个"face":
(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”的字符串。


您可以使用 set-background-color 来设置当前帧的所需颜色。请执行 C-h f set-background-color。这是您想要的吗? - user2053036
不,我确切地想要获取当前背景颜色类型... - kuanyui
1
检查变量 frame-background-mode,它似乎是你想要的。 - user2053036
@IqbalAnsari:请将您的评论放在答案中,这样可以被接受或投票赞成(或反对)。 - Drew
@Drew 你说得对,我应该把上面的内容发表为一个答案(这样社区就可以投票了),有点冲动了,抱歉!下次会小心的。 - user2053036
显示剩余2条评论
1个回答

10
你可以使用函数frame-parameter来获取框架的属性。对于你的特定情况,你可以这样做:
(frame-parameter nil 'background-mode)

获取当前帧的后台模式。第一个参数是要获取指定参数的帧,如果为nil,则使用当前选择的帧。您可以执行C-hfframe-parameterRET

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接