GNU bug report logs - #77928
[PATCH] use-package :custom-face is meant to behave like custom-set-face

Previous Next

Package: emacs;

Reported by: Michael Shields <shields <at> msrl.com>

Date: Sat, 19 Apr 2025 20:42:02 UTC

Severity: normal

Tags: patch

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #82 received at 77928 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Steven Allen <steven <at> stebalien.com>
Cc: 77928 <at> debbugs.gnu.org, johnw <at> gnu.org, shields <at> msrl.com
Subject: Re: bug#77928: 31.0.50; ebcde0f90f6 (bug#77928) breaks :custom-face
 for themed faces
Date: Sat, 07 Jun 2025 20:15:46 +0300
> From: Steven Allen <steven <at> stebalien.com>
> Cc: johnw <at> gnu.org, shields <at> msrl.com, 77928 <at> debbugs.gnu.org
> Date: Sat, 07 Jun 2025 09:09:03 -0700
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> >> From: Steven Allen <steven <at> stebalien.com>
> >> Cc: johnw <at> gnu.org, shields <at> msrl.com, 77928 <at> debbugs.gnu.org
> >> Date: Wed, 04 Jun 2025 12:07:12 -0700
> >>
> >> There are two parts to this report:
> >>
> >> 1. Bug: use-package's ":custom-face" no longer overrides themed
> >>   faces.
> >> 2. Opinion: ":custom-face" SHOULD merge the user-specified face spec
> >>   with the underlying face spec (contrary to the original report).
> >
> > I'm not sure I agree.  I think the concept is that themes override any
> > other face definitions, otherwise themes couldn't have done their main
> > job.
> 
> But this is the user's config. The theme should (and does) override the
> default face definitions, but the user should always have the last say.

Loading a theme is also a user configuration.  Customizing a face
directly (via "M-x customize-face") should indeed take precedence, but
use-package's :custom-face isn't that, AFAIU, because it doesn't
expand to a custom-set-faces form.

In fact, I'm not sure I understand the semantics of use-package's
:custom-face attribute.  And what is supposed to happen if a theme is
loaded _after_ :custom-face was processed?

> For example, if a user customizes a face via the "Easy Customization"
> interface, said customizations always override the theme. :custom-face
> is supposed to be the use-package equivalent of the "Easy
> Customization" system.

I'm not sure this is what :custom-face is, because it expands to
something else.  Maybe John could help us understand what was the
intent, and why this is the expansion.




This bug report was last modified 42 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.