I know that to (funcall (car (nth (random (length color-themes)) color-themes)))
gives me a random color theme on every Emacs startup; but I hardly restart Emacs. How do I cycle between random color themes, say, every hour?
(defun random-color-theme ()
(interactive)
(random t)
(funcall (car (nth (random (length color-themes)) color-themes))))
(random-color-theme)
(run-with-timer 1 (* 60 60) 'random-color-theme)
Credit goes to ggole
@ #emacs (freenode); and aecrvol
(below) for the (random t)
tip.
A little improvment: adding to the function (random t)
,
otherwise generated sequence will be the same in each Emacs run (
from http://www.gnu.org/software/emacs/elisp/html_node/Random-Numbers.html).
(defun random-color-theme ()
(interactive)
(random t) ; randomazing
(funcall (car (nth (random (length color-themes)) color-themes))))
Here is my update:
(setq color-themes (custom-available-themes))
(defun random-color-theme ()
(interactive)
(random t)
(load-theme
(nth (random (length color-themes)) color-themes)
t))
(random-color-theme)
(run-with-timer 1 (* 60 60) 'random-color-theme)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With