aboutsummaryrefslogtreecommitdiff
path: root/modules/dashboard-config.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-26 07:47:03 -0500
committerCraig Jennings <c@cjennings.net>2026-05-26 07:47:03 -0500
commit35b5739e791965c837c2e715076b52d3fee9e156 (patch)
tree3a8ccd8eaf1c8e8bc23cd40d02cdb87563537daa /modules/dashboard-config.el
parent877a7cbc87abe1df4b5d881f204c593141ca8c88 (diff)
downloaddotemacs-35b5739e791965c837c2e715076b52d3fee9e156.tar.gz
dotemacs-35b5739e791965c837c2e715076b52d3fee9e156.zip
fix(dashboard): exempt the banner buffer from auto-dim
The butterfly banner is a transparent PNG. On this X11 build Emacs composites image alpha against one background color and caches the flat pixmap. So when auto-dim remaps a non-selected dashboard's background to near-black, the cached image keeps its old composite and the transparent edges show as a lighter rectangle. I exempted the *dashboard* buffer from dimming through the fork's never-dim-buffer hook, so its background never shifts. Live alpha compositing would need a pgtk build, which is out because of its fractional-scaling input lag, and every theme-level workaround changes dimming for all buffers. Scoping the exemption to one short-lived buffer is the narrow fix. The trade is no focus cue when the dashboard is shown in a split. I also dropped the :mask heuristic prop from the prior banner commit. The PNG already carries a real alpha channel, so heuristic masking was the wrong tool. Once the background is stable, the native alpha over the theme background reads clean on its own. I added Normal/Boundary/Error tests for the predicate.
Diffstat (limited to 'modules/dashboard-config.el')
-rw-r--r--modules/dashboard-config.el13
1 files changed, 9 insertions, 4 deletions
diff --git a/modules/dashboard-config.el b/modules/dashboard-config.el
index ac511b5b..571eb58a 100644
--- a/modules/dashboard-config.el
+++ b/modules/dashboard-config.el
@@ -171,11 +171,16 @@ window."
:config
;; == banner
- ;; Set image props before `dashboard-setup-startup-hook' can build the
- ;; dashboard buffer; otherwise the startup image descriptor may miss the
- ;; transparency mask.
+ ;; The banner is an RGBA PNG with real transparency. On this non-pgtk build
+ ;; Emacs composites the alpha against one solid background color at render
+ ;; time and caches the flat pixmap -- it can't re-blend against a window
+ ;; background that changes later. The dashboard is exempt from dimming (see
+ ;; the never-dim predicate in auto-dim-config.el), so its background stays at
+ ;; the theme color in every window. That makes the constant face background
+ ;; the right thing to composite against -- no :mask and no forced :background
+ ;; needed; the native alpha over the theme background leaves the transparent
+ ;; edges seamless.
(setq dashboard-startup-banner (concat user-emacs-directory "assets/M-x_butterfly.png"))
- (setq dashboard-image-extra-props '(:mask heuristic))
(setq dashboard-banner-logo-title "Emacs: The Editor That Saves Your Soul")
;; == general