commit 8816b95ca0d7213037ca85716c07b21185a5735f from: mtmn date: Sat Sep 19 04:18:31 2026 UTC gui theme cache commit - e0df63515ebe429a3d299df6a6dd0cd880ce7410 commit + 8816b95ca0d7213037ca85716c07b21185a5735f blob - ccfb6b182b8bb770d21863bad7d4db4a3d70447f blob + 4d92151354065e0b5c1f00761222eb4794592c58 --- lisp/setup-ui.el +++ lisp/setup-ui.el @@ -88,8 +88,18 @@ (defun mine-theme--record (&rest _) "Persist selected GUI theme across restarts." (when (and custom-enabled-themes (display-graphic-p)) - (setq mine-last-theme (car custom-enabled-themes)))) + (let ((theme (car custom-enabled-themes))) + (when (not (equal mine-last-theme theme)) + (setq mine-last-theme theme) + (with-temp-file (mine-cache-file "theme.el") + (princ `(setq mine-last-theme ',theme))))))) +(defun mine-theme--restore () + "Load previously recorded theme name, if any." + (let ((file (mine-cache-file "theme.el"))) + (when (file-exists-p file) + (load file 'nomessage)))) + (advice-add 'load-theme :after #'mine-theme--record) (add-hook 'enable-theme-functions #'mine-theme--record) @@ -106,6 +116,7 @@ :demand t :config (add-hook 'ef-themes-after-load-theme-hook #'mine-theme--record) + (mine-theme--restore) (condition-case nil (load-theme (or (and (symbolp mine-last-theme) mine-last-theme) 'ef-winter)