2014-02-17 48 views
4

如何獲得背景類型的Emacs?例如'light'dark如何獲取Emacs的背景類型?例如'light or'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

可以使用'設置背景color'設置當前幀的所期望的顏色。做'C-h f set-background-color'。這是你想要的嗎? – 2014-02-17 16:53:47

+0

不,我完全想得到當前的背景顏色類型... – kuanyui

+1

檢查變量'frame-background-mode',它似乎是你想要的 – 2014-02-17 17:05:47

回答

5

您可以使用函數frame-parameter來獲取幀的屬性。對於您的特定情況下,你可以做

(frame-parameter nil 'background-mode) 

爲了得到當前幀的背景模式。第一個參數是要獲取指定參數的幀,如果nil使用當前選定的幀。可以做C-H˚Fframe-parameterRET

+1

很高興我能幫忙:) – 2014-02-17 17:15:41