[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

provide an easy way to customize inherited faces

From: Drew Adams
Subject: provide an easy way to customize inherited faces
Date: Sat, 15 Jul 2006 07:44:42 -0700

In Customize, when a face inherits from another, only the directly inherited
face name appears, and it appears only as text in an editable field. If you
know what you're doing, then you can put point in the field and use M-x
customize-face. Even then, however, the default value is just the face name
in the editable field; there is no easy way to customize other faces in the
inheritance hierarchy.

When a face inherits from others, the list of inherited faces should be
shown explicitly in the Customize buffer in some fashion. A simple list next
to the editable field (perhaps with items separated by "<"), would suffice.
It should be possible to easily customize any of the faces in that list, and
it should be obvious how to do so. Each name could be a link, and the list
of links could have a label such as "Customize Inherited Face(s)", where the
`s' is shown only when the inheritance chain is longer than two.

In many cases, it will make more sense for a user to customize an inherited
face - perhaps even a face at the top of the inheritance tree, than it would
for the user to customize each of several faces separately. An example is
face `link'. Even though the inheritance tree is flat, there are several
faces that inherit from `link'. Most users will want to change the
appearance of all of these at once - for example, to remove underlining. How
to do that is not obvious.

The natural result will be that users will end up customizing multiple faces
when one would have sufficed. The other result is that users will become
confused and frustrated, not understanding why links still appear underlined
(for example) in some buffers, even after customizing.

The starting point for customizing a face for most users will be to put
point on a face and use M-x customize-face or the equivalent via the Text
Properties menu. This will show them a face such as `info-link' or
`custom-link' in Customize, instead of the parent face, `link'. That's good,
but the inheritance information is not as accessible, for customization, as
it could be, especially in the case of a chain longer than two.

The link example is a good one, even if the hierarchy is flat. Although it
is perhaps good that links are underlined by default now, I suspect that
many Emacs users other than newbies will want to remove underlining as one
of their first customizations in Emacs 22.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]