Emacs package that lets faces change color when idle:

First, define what faces will be affected with huecycle-set-faces:
(huecycle-set-faces
((background . mode-line)))Then calling huecycle will then let those faces change color.
You can specify multiple faces into a group, which will allow settings to take affect for all faces. Groups follow the form of association list entries mapping a face spec to affected faces, followed by options.
(huecycle-set-faces
((background . mode-line)
(foreground . (warning highlight))
:speed 2.0
:persist t))Faces in a group sync up color changes.
You can have multiple groups, each with their own configurations:
(huecycle-set-faces
((background . hl-line)
(foreground . (line-number-current-line))
:random-color-hue-range (0.0 1.0)
:random-color-saturation-range (0.8 1.0)
:random-color-luminance-range (0.5 0.8))
((foreground . warning)
:color-list ("#FF0000" "#FF0000" "#DDAAAA")
:next-color-func huecycle-get-next-list-color
:speed 5.0))Read the documentation for huecycle-set-faces to see all the ways you control groups.
You can make Emacs huecycle when idle using M-x huecycle-when-idle.
You can specify how long Emacs will cycle for with M-x huecycle-set-cycle-duration.
Tests are powered using emacs’ ert.
Go to the file, huecycle-test.el, then run the commands:
eval-bufferert
To run the test suite.