7

Suppose I want the face helm-match to have an unset foreground. Unfortunately, helm-match inherits from match so, if I try to unset the foreground normally:

(set-face-foreground 'helm-match nil)

The inherited foreground becomes active. I'd rather not mess with the match face itself (because I can't tell what ramifications that would have), and I would like to avoid hard coding the other values in helm-match because I use multiple themes.

How can I achieve this sanely?

PythonNut
  • 10,243
  • 2
  • 29
  • 75
  • *Just customize the face* (`helm-match`). That's what face customization is for. Show all the attributes in Customize, and uncheck the inheritance. – Drew Jan 30 '16 at 02:04
  • 1
    @Drew I would like to preserve the inheritance of other attributes. – PythonNut Jan 30 '16 at 02:18
  • 1
    So leave `Inherit` checked and check whatever other attributes you want to override any from the inherited face. The point is to use Customize (`customize-face`). – Drew Jan 30 '16 at 02:35

1 Answers1

0

Use unspecified as value instead.

See also face attributes.

wasamasa
  • 21,803
  • 1
  • 65
  • 97
  • Nope. `unspecified` causes the face to inherit the property from the parent. – PythonNut Jan 30 '16 at 02:18
  • @PythonNut: yes, from linked page: "An unspecified attribute tells Emacs to refer instead to a parent face", what would you want instead? – npostavs Jan 30 '16 at 08:34
  • What about `unspecified` for the `inherit` attribute? – wasamasa Jan 30 '16 at 13:08
  • 5
    @npostavs I would like the face attribute to be truly unspecified. That is, left to lower priority faces on the same character, for example. – PythonNut Feb 02 '16 at 06:22