Parent directory

spectrum.zsh

1280 bytes
 1# A script to make using 256 colors in zsh less painful.
 2# P.C. Shyamshankar <sykora@lucentbeing.com>
 3# Copied from https://github.com/sykora/etc/blob/master/zsh/functions/spectrum/
 4
 5typeset -AHg FX FG BG
 6
 7FX=(
 8  reset     "%{%}"
 9  bold      "%{%}" no-bold      "%{%}"
10  dim       "%{%}" no-dim       "%{%}"
11  italic    "%{%}" no-italic    "%{%}"
12  underline "%{%}" no-underline "%{%}"
13  blink     "%{%}" no-blink     "%{%}"
14  reverse   "%{%}" no-reverse   "%{%}"
15)
16
17for color in {000..255}; do
18  FG[$color]="%{[38;5;${color}m%}"
19  BG[$color]="%{[48;5;${color}m%}"
20done
21
22# Show all 256 colors with color number
23function spectrum_ls() {
24  setopt localoptions nopromptsubst
25  local ZSH_SPECTRUM_TEXT=${ZSH_SPECTRUM_TEXT:-Arma virumque cano Troiae qui primus ab oris}
26  for code in {000..255}; do
27    print -P -- "$code: ${FG[$code]}${ZSH_SPECTRUM_TEXT}%{$reset_color%}"
28  done
29}
30
31# Show all 256 colors where the background is set to specific color
32function spectrum_bls() {
33  setopt localoptions nopromptsubst
34  local ZSH_SPECTRUM_TEXT=${ZSH_SPECTRUM_TEXT:-Arma virumque cano Troiae qui primus ab oris}
35  for code in {000..255}; do
36    print -P -- "$code: ${BG[$code]}${ZSH_SPECTRUM_TEXT}%{$reset_color%}"
37  done
38}