commit - e0df63515ebe429a3d299df6a6dd0cd880ce7410
commit + 8816b95ca0d7213037ca85716c07b21185a5735f
blob - ccfb6b182b8bb770d21863bad7d4db4a3d70447f
blob + 4d92151354065e0b5c1f00761222eb4794592c58
--- lisp/setup-ui.el
+++ lisp/setup-ui.el
(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)
: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)