diff options
Diffstat (limited to 'module/output/general.scm')
-rw-r--r-- | module/output/general.scm | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/module/output/general.scm b/module/output/general.scm index f455f18b..526c449e 100644 --- a/module/output/general.scm +++ b/module/output/general.scm @@ -1,10 +1,14 @@ (define-module (output general) ) -(define-public (trim-to-width str len) - (let ((trimmed (string-pad-right str len))) - (if (< (string-length trimmed) - (string-length str)) - (string-append (string-drop-right trimmed 1) - "…") - trimmed))) +;; Returns a color with good contrast to the given background color. +(define-public (calculate-fg-color c) + (define (str->num c n) (string->number (substring/shared c n (+ n 2)) 16)) + (let ((r (str->num c 1)) + (g (str->num c 3)) + (b (str->num c 5))) + (if (< 1/2 (/ (+ (* 0.299 r) + (* 0.587 g) + (* 0.144 b)) + #xFF)) + "#000000" "#e5e8e6"))) |