Splash image tinted only on emacs daemon launch

What happened?

When I do emacs --bg-daemon and then launch emacsclient -c, the splash image (emacs logo with transparent background as a png) has a background tint.

The splash image is not tinted, however, in these scenarios:

  • when I launch another client with the same daemon (the tint then disappears in both the previous and the new clients)
  • when I launch emacs as normal (with emacs)

I use the doom-one theme. The background tint corresponds to the Background: #282c34 of the default face. Indeed, I have this in my config.org, as per Zamboni’s config.

  '(doom-dashboard-banner :inherit default)
  '(doom-dashboard-loaded :inherit default))

I’ve also tried putting (set-face-attribute 'doom-dashboard-banner nil :background "#21242b") in my config.org, but this doesn’t help.

Why does the first client launched from the daemon have this problem while other clients do not? How can I debug this type of issue?

What did you expect to happen?

The transparency should let the dashboard’s color through and no tint should be visible.

System information

Loading data dump...

I chanced upon these reddit posts (1, 2) and this Doom github issue which indicate this is an upstream problem with the way the emacs daemon loads themes.

I have added this to my config.org and now the tint is gone when I first run emacsclient -c:

(defun my-load-doom-theme (frame)
  (select-frame frame)
  (load-theme doom-theme t))

(if (daemonp)
    (add-hook 'after-make-frame-functions #'my-load-doom-theme)
  (load-theme doom-theme t))

Hoping this helps anyone who searches this forum.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.