spectrum.zsh 1.06 KB
Newer Older
1
2
3
#! /bin/zsh
# A script to make using 256 colors in zsh less painful.
# P.C. Shyamshankar <sykora@lucentbeing.com>
Janosch Schwalm's avatar
Janosch Schwalm committed
4
# Copied from https://github.com/sykora/etc/blob/master/zsh/functions/spectrum/
5

6
typeset -AHg FX FG BG
7
8

FX=(
9
10
11
12
13
14
    reset     "%{%}"
    bold      "%{%}" no-bold      "%{%}"
    italic    "%{%}" no-italic    "%{%}"
    underline "%{%}" no-underline "%{%}"
    blink     "%{%}" no-blink     "%{%}"
    reverse   "%{%}" no-reverse   "%{%}"
15
16
17
)

for color in {000..255}; do
18
19
    FG[$color]="%{[38;5;${color}m%}"
    BG[$color]="%{[48;5;${color}m%}"
20
done
21

LFDM's avatar
LFDM committed
22
23
24

ZSH_SPECTRUM_TEXT=${ZSH_SPECTRUM_TEXT:-Arma virumque cano Troiae qui primus ab oris}

25
26
27
# Show all 256 colors with color number
function spectrum_ls() {
  for code in {000..255}; do
28
    print -P -- "$code: %{$FG[$code]%}$ZSH_SPECTRUM_TEXT%{$reset_color%}"
29
30
31
  done
}

32
33
34
# Show all 256 colors where the background is set to specific color
function spectrum_bls() {
  for code in {000..255}; do
35
    print -P -- "$code: %{$BG[$code]%}$ZSH_SPECTRUM_TEXT%{$reset_color%}"
36
37
  done
}