What about having a :link face attribute (property) that is
soft, not hard?
What does "soft" or "hard" mean, here?
Soft: The appearance of a soft text property like :link would be whatever a
user says it is. By default, it might be a set of properties with just one
member: the :underline property.
Hard: The appearance of a hard text property like :underline always means
the same thing: the text is underlined. Users can decide to use it or not
use it, but they cannot redefine it.
That way, a single (possibly user) definition of the :link
attribute would automatically affect any faces that have
that property. And it would also be easy (including for
users) to selectively apply the :link property to face
or mouse-face or both.
I think this can be done by making these faces inherit
from a face named `link'.
I thought that might be the case. Instead of "soft" text properties (which
would be definable as a set of soft and hard text properties), an inheriting
face could be used. IOW, a face is already a set of text properties (you can
say "has" if you don't like "is"), and we already have face inheritance.
A potential difference I see is that the thing that inherits is a face,
rather than a text property. In the present case, we would define (and use
for all links) a `link' face that inherits certain properties (e.g.
:underline) by default. I'm not sure that would be equivalent in flexibility
to defining an inheriting (= "soft") text property :link, but perhaps it
If we can do this (predefine links in a soft way) using face inheritance,
then why don't we (after the release), in order to give people more