Subject: bug#47944: Unable to customize button face in `describe-package'

From: Protesilaos Stavrou <[email-masked]>
Date: Fri, 23 Apr 2021 00:03:13 +0300

On 2021-04-21, 23:42 +0200, Stefan Kangas <[email-masked]> wrote:

> Severity: minor
>
> There is currently no way to customize the button face in
> `describe-package'; the face is hard-coded.  This leads to issues with
> `hl-line-mode', for example:
>
>     https://gitlab.com/protesilaos/modus-themes/-/issues/180
>
> I'm thinking that we could just use the `custom-button' face here as it
> looks similar enough, and should already exist in most popular themes.
>
> diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
> index 64d7d56019..f2e83d3fda 100644
> --- a/lisp/emacs-lisp/package.el
> +++ b/lisp/emacs-lisp/package.el
> @@ -2696,9 +2696,9 @@ package-make-button
>  function is a convenience wrapper used by `describe-package-1'."
>    (let ((button-text (if (display-graphic-p) text (concat "[" text "]")))
>          (button-face (if (display-graphic-p)
> -                         '(:box (:line-width 2 :color "dark grey")
> -                                :background "light grey"
> -                                :foreground "black")
> +                         (progn
> +                           (require 'cus-edit) ; for the custom-button face
> +                           'custom-button)
>                         'link)))
>      (apply #'insert-text-button button-text 'face button-face 'follow-link t
>             properties)))
>
> Thoughts?

Is there any chance that cus-edit, from whence custom-button comes from,
is not loaded while describe-package is in use?

Otherwise yes, I think that face feels right and would solve the issue
you linked to.

-- 
Protesilaos Stavrou
https://protesilaos.com