forked from nushell/nu_scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path24bit-1.nu
More file actions
37 lines (34 loc) · 966 Bytes
/
24bit-1.nu
File metadata and controls
37 lines (34 loc) · 966 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
export def draw [] {
let term_cols = ((term size).columns - 1)
# let's itertate through each of the columns of our terminal
0..$term_cols | each { |col|
let r = (255 - ($col * 255 / $term_cols) | math round)
let g = ($col * 510 / $term_cols | math round)
let b = ($col * 255 / $term_cols | math round)
if $g > 255 {
let g = (510 - $g)
build-colorstr $r $g $b $col
} else {
build-colorstr $r $g $b $col
}
} | str join
}
def build-colorstr [
r:int # Red
g:int # Green
b:int # Blue
c:int # Column
] {
# Heavy use of string interpolation below
let bg = $"(ansi rgb_bg)($r);($g);($b)m"
let fg = $"(ansi rgb_fg)(255 - $r);(255 - $g);(255 - $b)m"
let idx = ($c mod 2)
let slash_str = (if $idx == 0 {
$'/(ansi reset)'
} else {
$'\(ansi reset)'
})
$"($bg)($fg)($slash_str)"
# sleep 10ms | ignore
}
# draw