Closed jojojames closed 6 years ago
Hey,
thanks for that suggestion 👍 I'll consider the idea If you like, feel free to contribute some example code that elaborates your thougt 🙂
I posted an email in emacs-help mailing list a few days ago, just for circadian. I want the same hook too. http://lists.gnu.org/archive/html/help-gnu-emacs/2017-12/msg00000.html
(defvar +current-theme nil "Current theme.")
(defun theme-changer-switch-theme (_old new)
""
(mapc #'disable-theme custom-enabled-themes)
(setq +current-theme new)
(when new
(load-theme new t)
(run-hooks 'after-load-theme-hook)))
I have something like this for theme-changer.
@jojojames I can't find the after-load-theme-hook
. I use [C-h v]
, but didn't found it.
It's a hook you run/create yourself.
@jojojames Thank's for the example above 👍. I'll put the hook onto the top of my todo-stack for circadian. In the meantime, maybe you'll be able to get around using an adviced function (using a hook should be the preferred way ... "Advice should only be used when no hook is provided"... 😓):
(defun foobar (original-function &rest args)
"Wrap the ORIGINAL-FUNCTION that would be called with its ARGS."
(message "Circadian will change your theme.") ;; <- custom code, runs before circadian-enable-theme
(apply original-function args)
(message "Circadian changed your theme.")) ;; <- custom code, runs after circadian-enable-theme
;; Add your custom foobar function to circadian-enable-theme function
(advice-add #'circadian-enable-theme :around #'foobar)
;; Now when circadian enables a theme, the foobar function is 'wrapped around'
;; circadian-enable-theme
(circadian-enable-theme 'material)
Adding a hook and persisting the currently loaded theme shouldn't be to complicated - I'm on it as soon as possible 🙂
Just released v0.3.1 providing a hook that runs before loading a theme, as well as one, that runs afterwards.
Let me know, if you want additional features or have further ideas on hooks and what to do with them regarding theme switching 👍
Thanks @guidoschmidt !
Hi,
Wanted to request getting a theme-change-hook as well as persisting the theme variable on change.
I believe custom-enabled-themes contains a list of enabled themes but it might be more explicit to manage one in this package.
Thanks!