142 lines
3.2 KiB
Fish
142 lines
3.2 KiB
Fish
#!/usr/bin/fish
|
|
function theme_gruvbox --description 'Apply gruvbox theme'
|
|
set -l mode 'light'
|
|
if test (count $argv) -gt 0
|
|
set mode $argv[1]
|
|
end
|
|
|
|
set -g contrast 'medium'
|
|
if test (count $argv) -gt 1
|
|
set contrast $argv[2]
|
|
end
|
|
|
|
switch $contrast
|
|
case 'soft'
|
|
case 'medium'
|
|
case 'hard'
|
|
case '*'
|
|
set_color $fish_color_error
|
|
echo 'Unknown contrast $contrast, choose soft, medium or hard'
|
|
set_color $fish_color_normal
|
|
return 1
|
|
end
|
|
|
|
switch $mode
|
|
case 'light'
|
|
__theme_gruvbox_base
|
|
__theme_gruvbox_light
|
|
case 'dark'
|
|
__theme_gruvbox_base
|
|
__theme_gruvbox_dark
|
|
case '*'
|
|
set_color $fish_color_error
|
|
echo 'Unknown mode $mode, choose light or dark'
|
|
set_color $fish_color_normal
|
|
return 1
|
|
end
|
|
__theme_gruvbox_palette
|
|
return 0
|
|
end
|
|
|
|
function __theme_gruvbox_base
|
|
__printf_color 1 'cc/24/1d'
|
|
__printf_color 2 '98/97/1a'
|
|
__printf_color 3 'd7/99/21'
|
|
__printf_color 4 '45/85/88'
|
|
__printf_color 5 'b1/62/86'
|
|
__printf_color 6 '68/9d/6a'
|
|
end
|
|
|
|
function __theme_gruvbox_light
|
|
set -l bg 'fb/f1/c7'
|
|
switch $contrast
|
|
case "soft"
|
|
set bg 'f2/e5/bc'
|
|
case "hard"
|
|
set bg 'f9/f5/d7'
|
|
end
|
|
command printf "\033]11;rgb:$bg\007"
|
|
|
|
set -l fg '3c/38/36'
|
|
command printf "\033]10;rgb:$fg\007"
|
|
|
|
__printf_color 0 $bg
|
|
__printf_color 7 '7c/6f/64'
|
|
__printf_color 8 '92/83/74'
|
|
__printf_color 9 '9d/00/06'
|
|
__printf_color 10 '79/74/0e'
|
|
__printf_color 11 'b5/76/14'
|
|
__printf_color 12 '07/66/78'
|
|
__printf_color 13 '8f/3f/71'
|
|
__printf_color 14 '42/7b/58'
|
|
__printf_color 15 $fg
|
|
end
|
|
|
|
function __theme_gruvbox_dark
|
|
set -l bg '28/28/28'
|
|
switch $contrast
|
|
case "soft"
|
|
set bg '32/30/2f'
|
|
case "hard"
|
|
set bg '1d/20/21'
|
|
end
|
|
command printf "\033]11;rgb:$bg\007"
|
|
|
|
set -l fg 'eb/db/b2'
|
|
command printf "\033]10;rgb:$fg\007"
|
|
|
|
__printf_color 0 $bg
|
|
__printf_color 7 'a8/99/84'
|
|
__printf_color 8 '92/83/74'
|
|
__printf_color 9 'fb/59/34'
|
|
__printf_color 10 'b8/bb/26'
|
|
__printf_color 11 'fa/bd/2f'
|
|
__printf_color 12 '83/a5/98'
|
|
__printf_color 13 'd3/86/9b'
|
|
__printf_color 14 '8e/c0/7c'
|
|
__printf_color 15 $fg
|
|
end
|
|
|
|
function __theme_gruvbox_palette
|
|
__printf_color 236 '32/30/2f'
|
|
__printf_color 234 '1d/20/21'
|
|
|
|
__printf_color 235 '28/28/28'
|
|
__printf_color 237 '3c/38/36'
|
|
__printf_color 239 '50/49/45'
|
|
__printf_color 241 '66/5c/54'
|
|
__printf_color 243 '7c/6f/64'
|
|
|
|
__printf_color 244 '92/83/74'
|
|
__printf_color 245 '92/83/74'
|
|
|
|
__printf_color 228 'f2/e5/bc'
|
|
__printf_color 230 'f9/f5/d7'
|
|
|
|
__printf_color 229 'fb/f1/c7'
|
|
__printf_color 223 'eb/db/b2'
|
|
__printf_color 250 'd5/c4/a1'
|
|
__printf_color 248 'bd/ae/93'
|
|
__printf_color 246 'a8/99/84'
|
|
|
|
__printf_color 167 'fb/49/34'
|
|
__printf_color 142 'b8/bb/26'
|
|
__printf_color 214 'fa/bd/2f'
|
|
__printf_color 109 '83/a5/98'
|
|
__printf_color 175 'd3/86/9b'
|
|
__printf_color 108 '8e/c0/7c'
|
|
__printf_color 208 'fe/80/19'
|
|
|
|
__printf_color 88 '9d/00/06'
|
|
__printf_color 100 '79/74/0e'
|
|
__printf_color 136 'b5/76/14'
|
|
__printf_color 24 '07/66/78'
|
|
__printf_color 96 '8f/3f/71'
|
|
__printf_color 66 '42/7b/58'
|
|
__printf_color 130 'af/3a/03'
|
|
end
|
|
|
|
function __printf_color
|
|
command printf "\033]4;$argv[1];rgb:$argv[2]\007"
|
|
end
|