-
-
Save kawabata/7366238 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; zone-pgm-rainbow | |
(require 'zone) | |
(defvar zone-programs) | |
(defvar zpr-hue-factor 50) | |
(defvar zpr-sat 1.0) | |
(defvar zpr-light 0.5) | |
(defun zone-pgm-rainbow () | |
(require 'color nil) | |
(cl-loop | |
while (not (input-pending-p)) | |
with k = 0 | |
do (cl-loop | |
for i from (window-start) to (1- (window-end)) | |
do (add-text-properties | |
i (1+ i) | |
`(face ((foreground-color | |
. ,(apply 'color-rgb-to-hex | |
(color-hsl-to-rgb | |
(/ (* (% (+ i k) zpr-hue-factor) 1.0) zpr-hue-factor) | |
zpr-sat zpr-light))))))) | |
(sit-for 0.2) | |
(setq k (1+ k)))) | |
(defun zone-choose (pgm) | |
"Choose a PGM to run for `zone'." | |
(interactive | |
(list | |
(completing-read | |
"Program: " | |
(mapcar 'symbol-name zone-programs)))) | |
(let ((zone-programs (list (intern pgm)))) | |
(zone))) | |
(defun zone-rainbow () (interactive) | |
(zone-choose "zone-pgm-rainbow")) | |
(run-with-idle-timer 90 nil 'zone-rainbow) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment