(defun tty-color-256-define () ;; colors 16-231 are a 6x6x6 color cube (let ((red 0)) (while (< red 6) (let ((green 0)) (while (< green 6) (let ((blue 0)) (while (< blue 6) (let ((code (+ 16 (* red 36) (* green 6) blue))) (tty-color-define (format "color%d" code) code (list (* (if (zerop red) 0 (+ (* red 40) 55)) 257) (* (if (zerop green) 0 (+ (* green 40) 55)) 257) (* (if (zerop blue) 0 (+ (* blue 40) 35)) 257)))) (setq blue (1+ blue)))) (setq green (1+ green)))) (setq red (1+ red)))) ;; colors 232-255 are a grayscale ramp (let ((gray 0)) (while (< gray 24) (let ((level (* (+ (* gray 10) 8) 257)) (code (+ 232 gray))) (tty-color-define (format "color%d" code) code (list level level level))) (setq gray (1+ gray)))))