Summary: Is it possible to have customize-face expand "For All Kinds of Display" automatically when needed?
I have some faces with different appearances depending on the type of display, for instance,
highlight-indentation-face has a different background color depending on whether I'm in a light terminal, dark terminal, or separate Emacs window:
'(highlight-indentation-face ((((type tty) (background light)) (:inherit fringe :background "brightwhite")) (((type tty) (background dark)) (:inherit fringe :background "brightblack")) (((type x w32) (class color)) (:inherit fringe :background "#00336b")) (t (:inherit fringe :background "#00336b"))))
When I edit such a face with
M-x customize-face, though, I only see the settings for the current display. And if I save the settings, only the settings for the current display get saved. If I select "State > For All Kinds of Displays", everything works perfectly.
I'd like for customize-face to check whether the face has display-specific values, and if so, switch to "For All Kinds of Displays" automatically. Or even just display "For All Kinds of Displays" for all faces, even the simple ones.
I've tried customizing customize-mode, but haven't found anything obvious. From browsing the source, it looks as though I might want to change how the
custom-face-edit widget (in
cus-edit.el) is defined, but I don't know how to do that.