Skip to content

Instantly share code, notes, and snippets.

@cskeeters
Created March 20, 2014 21:45
Show Gist options
  • Save cskeeters/9674586 to your computer and use it in GitHub Desktop.
Save cskeeters/9674586 to your computer and use it in GitHub Desktop.
Demo setting colors in the terminal/vim starting with 20
#!/bin/sh
# Base16 Default - Console color setup script
# Chris Kempson (http://chriskempson.com)
color00="15/15/15" # Base 00 - Black
color01="ac/41/42" # Base 08 - Red
color02="90/a9/59" # Base 0B - Green
color03="f4/bf/75" # Base 0A - Yellow
color04="6a/9f/b5" # Base 0D - Blue
color05="aa/75/9f" # Base 0E - Magenta
color06="75/b5/aa" # Base 0C - Cyan
color07="d0/d0/d0" # Base 05 - White
color08="50/50/50" # Base 03 - Bright Black
color09=$color01 # Base 08 - Bright Red
color10=$color02 # Base 0B - Bright Green
color11=$color03 # Base 0A - Bright Yellow
color12=$color04 # Base 0D - Bright Blue
color13=$color05 # Base 0E - Bright Magenta
color14=$color06 # Base 0C - Bright Cyan
color15="f5/f5/f5" # Base 07 - Bright White
color16="d2/84/45" # Base 09
color17="8f/55/36" # Base 0F
color18="20/20/20" # Base 01
color19="30/30/30" # Base 02
color20="b0/b0/b0" # Base 04
color21="e0/e0/e0" # Base 06
# 16 color space
printf "\e]4;20;rgb:$color00\e\\"
printf "\e]4;21;rgb:$color01\e\\"
printf "\e]4;22;rgb:$color02\e\\"
printf "\e]4;23;rgb:$color03\e\\"
printf "\e]4;24;rgb:$color04\e\\"
printf "\e]4;25;rgb:$color05\e\\"
printf "\e]4;26;rgb:$color06\e\\"
printf "\e]4;27;rgb:$color07\e\\"
printf "\e]4;28;rgb:$color08\e\\"
printf "\e]4;29;rgb:$color09\e\\"
printf "\e]4;30;rgb:$color10\e\\"
printf "\e]4;31;rgb:$color11\e\\"
printf "\e]4;32;rgb:$color12\e\\"
printf "\e]4;33;rgb:$color13\e\\"
printf "\e]4;34;rgb:$color14\e\\"
printf "\e]4;35;rgb:$color15\e\\"
# 256 color space
if [ "$TERM" != linux ]; then
printf "\e]4;36;rgb:$color16\e\\"
printf "\e]4;37;rgb:$color17\e\\"
printf "\e]4;38;rgb:$color18\e\\"
printf "\e]4;39;rgb:$color19\e\\"
printf "\e]4;40;rgb:$color20\e\\"
printf "\e]4;41;rgb:$color21\e\\"
fi
# clean up
unset color00
unset color01
unset color02
unset color03
unset color04
unset color05
unset color06
unset color07
unset color08
unset color09
unset color10
unset color11
unset color12
unset color13
unset color14
unset color15
unset color16
unset color17
unset color18
unset color19
unset color20
unset color21
" Base16 Default (https://github.com/chriskempson/base16)
" Scheme: Chris Kempson (http://chriskempson.com)
" GUI color definitions
let s:gui00 = "151515"
let s:gui01 = "202020"
let s:gui02 = "303030"
let s:gui03 = "505050"
let s:gui04 = "b0b0b0"
let s:gui05 = "d0d0d0"
let s:gui06 = "e0e0e0"
let s:gui07 = "f5f5f5"
let s:gui08 = "ac4142"
let s:gui09 = "d28445"
let s:gui0A = "f4bf75"
let s:gui0B = "90a959"
let s:gui0C = "75b5aa"
let s:gui0D = "6a9fb5"
let s:gui0E = "aa759f"
let s:gui0F = "8f5536"
" Terminal color definitions
let s:cterm00 = "20"
let s:cterm03 = "28"
let s:cterm05 = "27"
let s:cterm07 = "35"
let s:cterm08 = "21"
let s:cterm0A = "23"
let s:cterm0B = "22"
let s:cterm0C = "26"
let s:cterm0D = "24"
let s:cterm0E = "25"
let s:cterm01 = "38"
let s:cterm02 = "39"
let s:cterm04 = "40"
let s:cterm06 = "41"
let s:cterm09 = "36"
let s:cterm0F = "37"
" Theme setup
hi clear
syntax reset
"set background=dark
let g:colors_name = "base16-default-20"
" Highlighting function
fun <sid>hi(group, guifg, guibg, ctermfg, ctermbg, attr)
if a:guifg != ""
exec "hi " . a:group . " guifg=#" . s:gui(a:guifg)
endif
if a:guibg != ""
exec "hi " . a:group . " guibg=#" . s:gui(a:guibg)
endif
if a:ctermfg != ""
exec "hi " . a:group . " ctermfg=" . s:cterm(a:ctermfg)
endif
if a:ctermbg != ""
exec "hi " . a:group . " ctermbg=" . s:cterm(a:ctermbg)
endif
if a:attr != ""
exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr
endif
endfun
" Return GUI color for light/dark variants
fun s:gui(color)
if &background == "dark"
return a:color
endif
if a:color == s:gui00
return s:gui07
elseif a:color == s:gui01
return s:gui06
elseif a:color == s:gui02
return s:gui05
elseif a:color == s:gui03
return s:gui04
elseif a:color == s:gui04
return s:gui03
elseif a:color == s:gui05
return s:gui02
elseif a:color == s:gui06
return s:gui01
elseif a:color == s:gui07
return s:gui00
endif
return a:color
endfun
" Return terminal color for light/dark variants
fun s:cterm(color)
if &background == "dark"
echo &background
return a:color
endif
if a:color == s:cterm00
return s:cterm07
elseif a:color == s:cterm01
return s:cterm06
elseif a:color == s:cterm02
return s:cterm05
elseif a:color == s:cterm03
return s:cterm04
elseif a:color == s:cterm04
return s:cterm03
elseif a:color == s:cterm05
return s:cterm02
elseif a:color == s:cterm06
return s:cterm01
elseif a:color == s:cterm07
return s:cterm00
endif
return a:color
endfun
" Vim editor colors
call <sid>hi("Bold", "", "", "", "", "bold")
call <sid>hi("Debug", s:gui08, "", s:cterm08, "", "")
call <sid>hi("Directory", s:gui0D, "", s:cterm0D, "", "")
call <sid>hi("ErrorMsg", s:gui08, s:gui00, s:cterm08, s:cterm00, "")
call <sid>hi("Exception", s:gui08, "", s:cterm08, "", "")
call <sid>hi("FoldColumn", "", s:gui01, "", s:cterm01, "")
call <sid>hi("Folded", s:gui03, s:gui01, s:cterm03, s:cterm01, "")
call <sid>hi("IncSearch", s:gui01, s:gui0A, s:cterm01, s:cterm0A, "none")
call <sid>hi("Italic", "", "", "", "", "none")
call <sid>hi("Macro", s:gui08, "", s:cterm08, "", "")
call <sid>hi("MatchParen", s:gui00, s:gui03, s:cterm00, s:cterm03, "")
call <sid>hi("ModeMsg", s:gui0B, "", s:cterm0B, "", "")
call <sid>hi("MoreMsg", s:gui0B, "", s:cterm0B, "", "")
call <sid>hi("Question", s:gui0A, "", s:cterm0A, "", "")
call <sid>hi("Search", s:gui01, s:gui0A, s:cterm01, s:cterm0A, "")
call <sid>hi("SpecialKey", s:gui03, "", s:cterm03, "", "")
call <sid>hi("TooLong", s:gui08, "", s:cterm08, "", "")
call <sid>hi("Underlined", s:gui08, "", s:cterm08, "", "")
call <sid>hi("Visual", "", s:gui02, "", s:cterm02, "")
call <sid>hi("VisualNOS", s:gui08, "", s:cterm08, "", "")
call <sid>hi("WarningMsg", s:gui08, "", s:cterm08, "", "")
call <sid>hi("WildMenu", s:gui08, "", s:cterm08, "", "")
call <sid>hi("Title", s:gui0D, "", s:cterm0D, "", "none")
call <sid>hi("Conceal", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "")
call <sid>hi("Cursor", s:gui00, s:gui05, s:cterm00, s:cterm05, "")
call <sid>hi("NonText", s:gui03, "", s:cterm03, "", "")
call <sid>hi("Normal", s:gui05, s:gui00, s:cterm05, s:cterm00, "")
set background=dark " setting the ctermbg to non-zero effectively set background=light
" This needs to be reset so that s:cterm() returns the correct value
call <sid>hi("LineNr", s:gui03, s:gui01, s:cterm03, s:cterm01, "")
call <sid>hi("SignColumn", s:gui03, s:gui01, s:cterm03, s:cterm01, "")
call <sid>hi("SpecialKey", s:gui03, "", s:cterm03, "", "")
call <sid>hi("StatusLine", s:gui04, s:gui02, s:cterm04, s:cterm02, "none")
call <sid>hi("StatusLineNC", s:gui03, s:gui01, s:cterm03, s:cterm01, "none")
call <sid>hi("VertSplit", s:gui02, s:gui02, s:cterm02, s:cterm02, "none")
call <sid>hi("ColorColumn", "", s:gui01, "", s:cterm01, "none")
call <sid>hi("CursorColumn", "", s:gui01, "", s:cterm01, "none")
call <sid>hi("CursorLine", "", s:gui01, "", s:cterm01, "none")
call <sid>hi("CursorLineNr", s:gui03, s:gui01, s:cterm03, s:cterm01, "")
call <sid>hi("PMenu", s:gui04, s:gui01, s:cterm04, s:cterm01, "none")
call <sid>hi("PMenuSel", s:gui01, s:gui04, s:cterm01, s:cterm04, "")
call <sid>hi("TabLine", s:gui03, s:gui01, s:cterm03, s:cterm01, "none")
call <sid>hi("TabLineFill", s:gui03, s:gui01, s:cterm03, s:cterm01, "none")
call <sid>hi("TabLineSel", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "none")
" Standard syntax highlighting
call <sid>hi("Boolean", s:gui09, "", s:cterm09, "", "")
call <sid>hi("Character", s:gui08, "", s:cterm08, "", "")
call <sid>hi("Comment", s:gui03, "", s:cterm03, "", "")
call <sid>hi("Conditional", s:gui0E, "", s:cterm0E, "", "")
call <sid>hi("Constant", s:gui09, "", s:cterm09, "", "")
call <sid>hi("Define", s:gui0E, "", s:cterm0E, "", "none")
call <sid>hi("Delimiter", s:gui0F, "", s:cterm0F, "", "")
call <sid>hi("Float", s:gui09, "", s:cterm09, "", "")
call <sid>hi("Function", s:gui0D, "", s:cterm0D, "", "")
call <sid>hi("Identifier", s:gui08, "", s:cterm08, "", "none")
call <sid>hi("Include", s:gui0D, "", s:cterm0D, "", "")
call <sid>hi("Keyword", s:gui0E, "", s:cterm0E, "", "")
call <sid>hi("Label", s:gui0A, "", s:cterm0A, "", "")
call <sid>hi("Number", s:gui09, "", s:cterm09, "", "")
call <sid>hi("Operator", s:gui05, "", s:cterm05, "", "none")
call <sid>hi("PreProc", s:gui0A, "", s:cterm0A, "", "")
call <sid>hi("Repeat", s:gui0A, "", s:cterm0A, "", "")
call <sid>hi("Special", s:gui0C, "", s:cterm0C, "", "")
call <sid>hi("SpecialChar", s:gui0F, "", s:cterm0F, "", "")
call <sid>hi("Statement", s:gui08, "", s:cterm08, "", "")
call <sid>hi("StorageClass", s:gui0A, "", s:cterm0A, "", "")
call <sid>hi("String", s:gui0B, "", s:cterm0B, "", "")
call <sid>hi("Structure", s:gui0E, "", s:cterm0E, "", "")
call <sid>hi("Tag", s:gui0A, "", s:cterm0A, "", "")
call <sid>hi("Todo", s:gui0A, s:gui01, s:cterm0A, s:cterm01, "")
call <sid>hi("Type", s:gui09, "", s:cterm09, "", "none")
call <sid>hi("Typedef", s:gui0A, "", s:cterm0A, "", "")
" Spelling highlighting
call <sid>hi("SpellBad", "", s:gui00, "", s:cterm00, "undercurl")
call <sid>hi("SpellLocal", "", s:gui00, "", s:cterm00, "undercurl")
call <sid>hi("SpellCap", "", s:gui00, "", s:cterm00, "undercurl")
call <sid>hi("SpellRare", "", s:gui00, "", s:cterm00, "undercurl")
" Additional diff highlighting
call <sid>hi("DiffAdd", s:gui0B, s:gui00, s:cterm0B, s:cterm00, "")
call <sid>hi("DiffChange", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "")
call <sid>hi("DiffDelete", s:gui08, s:gui00, s:cterm08, s:cterm00, "")
call <sid>hi("DiffText", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "")
call <sid>hi("DiffAdded", s:gui0B, s:gui00, s:cterm0B, s:cterm00, "")
call <sid>hi("DiffFile", s:gui08, s:gui00, s:cterm08, s:cterm00, "")
call <sid>hi("DiffNewFile", s:gui0B, s:gui00, s:cterm0B, s:cterm00, "")
call <sid>hi("DiffLine", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "")
call <sid>hi("DiffRemoved", s:gui08, s:gui00, s:cterm08, s:cterm00, "")
" Ruby highlighting
call <sid>hi("rubyAttribute", s:gui0D, "", s:cterm0D, "", "")
call <sid>hi("rubyConstant", s:gui0A, "", s:cterm0A, "", "")
call <sid>hi("rubyInterpolation", s:gui0B, "", s:cterm0B, "", "")
call <sid>hi("rubyInterpolationDelimiter", s:gui0F, "", s:cterm0F, "", "")
call <sid>hi("rubyRegexp", s:gui0C, "", s:cterm0C, "", "")
call <sid>hi("rubySymbol", s:gui0B, "", s:cterm0B, "", "")
call <sid>hi("rubyStringDelimiter", s:gui0B, "", s:cterm0B, "", "")
" PHP highlighting
call <sid>hi("phpMemberSelector", s:gui05, "", s:cterm05, "", "")
call <sid>hi("phpComparison", s:gui05, "", s:cterm05, "", "")
call <sid>hi("phpParent", s:gui05, "", s:cterm05, "", "")
" HTML highlighting
call <sid>hi("htmlBold", s:gui0A, "", s:cterm0A, "", "")
call <sid>hi("htmlItalic", s:gui0E, "", s:cterm0E, "", "")
call <sid>hi("htmlEndTag", s:gui05, "", s:cterm05, "", "")
call <sid>hi("htmlTag", s:gui05, "", s:cterm05, "", "")
" CSS highlighting
call <sid>hi("cssBraces", s:gui05, "", s:cterm05, "", "")
call <sid>hi("cssClassName", s:gui0E, "", s:cterm0E, "", "")
call <sid>hi("cssColor", s:gui0C, "", s:cterm0C, "", "")
" SASS highlighting
call <sid>hi("sassidChar", s:gui08, "", s:cterm08, "", "")
call <sid>hi("sassClassChar", s:gui09, "", s:cterm09, "", "")
call <sid>hi("sassInclude", s:gui0E, "", s:cterm0E, "", "")
call <sid>hi("sassMixing", s:gui0E, "", s:cterm0E, "", "")
call <sid>hi("sassMixinName", s:gui0D, "", s:cterm0D, "", "")
" JavaScript highlighting
call <sid>hi("javaScript", s:gui05, "", s:cterm05, "", "")
call <sid>hi("javaScriptBraces", s:gui05, "", s:cterm05, "", "")
call <sid>hi("javaScriptNumber", s:gui09, "", s:cterm09, "", "")
" Markdown highlighting
call <sid>hi("markdownCode", s:gui0B, "", s:cterm0B, "", "")
call <sid>hi("markdownCodeBlock", s:gui0B, "", s:cterm0B, "", "")
call <sid>hi("markdownHeadingDelimiter", s:gui0D, "", s:cterm0D, "", "")
" Git highlighting
call <sid>hi("gitCommitOverflow", s:gui08, "", s:cterm08, "", "")
call <sid>hi("gitCommitSummary", s:gui0B, "", s:cterm0B, "", "")
" GitGutter highlighting
call <sid>hi("GitGutterAdd", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "")
call <sid>hi("GitGutterChange", s:gui0D, s:gui01, s:cterm0D, s:cterm01, "")
call <sid>hi("GitGutterDelete", s:gui08, s:gui01, s:cterm08, s:cterm01, "")
call <sid>hi("GitGutterChangeDelete", s:gui0E, s:gui01, s:cterm0E, s:cterm01, "")
" Signify highlighting
call <sid>hi("SignifySignAdd", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "")
call <sid>hi("SignifySignChange", s:gui0D, s:gui01, s:cterm0D, s:cterm01, "")
call <sid>hi("SignifySignDelete", s:gui08, s:gui01, s:cterm08, s:cterm01, "")
" NERDTree highlighting
call <sid>hi("NERDTreeDirSlash", s:gui0D, "", s:cterm0D, "", "")
call <sid>hi("NERDTreeExecFile", s:gui05, "", s:cterm05, "", "")
" Remove functions
delf <sid>hi
delf <sid>gui
delf <sid>cterm
" Remove color variables
unlet s:gui00 s:gui01 s:gui02 s:gui03 s:gui04 s:gui05 s:gui06 s:gui07 s:gui08 s:gui09 s:gui0A s:gui0B s:gui0C s:gui0D s:gui0E s:gui0F
unlet s:cterm00 s:cterm01 s:cterm02 s:cterm03 s:cterm04 s:cterm05 s:cterm06 s:cterm07 s:cterm08 s:cterm09 s:cterm0A s:cterm0B s:cterm0C s:cterm0D s:cterm0E s:cterm0F
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment