Skip to content

Instantly share code, notes, and snippets.

@ipatch
Created June 5, 2018 23:15
Show Gist options
  • Save ipatch/360949601bebd61675ce85278de72cca to your computer and use it in GitHub Desktop.
Save ipatch/360949601bebd61675ce85278de72cca to your computer and use it in GitHub Desktop.
Working with base16-shell
# https://github.com/chriskempson/base16-shell
# A broken fish script to display and switch between base16-shell colorschemes
function color --description 'select a base16-shell colorscheme'
# Usage: `color` print the current colorscheme
# Usage: [`light|dark` <name_of_colorscheme>]
# Example: `__shell_dark tomorrow`
# Help: `color help`
set -g BASE16_DIR ~/.config/base16-shell
set -g BASE16_CONFIG ~/.vim/.base16
function __shell_color
set BACKGROUND "$argv[1]"
set SCHEME "$argv[2]"
if [ (count $argv) -eq 0 -a -s "$BASE16_CONFIG" ]
cat ~/.vim/.base16
return
end
if [ "$SCHEME" = 'help' ]
set BACKGROUND 'help'
end
switch "$BACKGROUND"
case __shell_dark or __shell_light
set FILE "$BASE16_DIR/base16-$SCHEME.$BACKGROUND.sh"
if [ -x "$FILE" ]
echo "$SCHEME" > "$BASE16_CONFIG"
echo "$BACKGROUND" >> "$BASE16_CONFIG"
"$FILE"
else
echo "Scheme '$SCHEME' not found in $BASE16_DIR"
return 1
end
case help
echo 'color dark [ocean|grayscale|ashes|default|railscasts|tomorrow|twilight|...]'
echo 'color light [grayscale|harmonic16|ocean|tomorrow|twilight|...]'
echo
echo 'Available schemes:'
# TODO: properly list availbe color schemes!
find ~/.config/base16-shell -name 'base16-*.sh' | \
sed -E 's|.*/base16-||' | \
sed -E 's/\.(dark|list)\.sh/ (\1)/' | \
column
case '*'
echo 'Unknown subcommand: use one of {dark,light,help}'
end
end # function __fish_color
function __shell_dark
__shell_color dark "$argv[1]"
end
function __shell_light
__shell_light light "$argv[1]"
end
if [ -s "$BASE16_CONFIG" ]
set SCHEME (head -1 "$BASE16_CONFIG")
set BACKGROUND (sed -n -e '2 p' "$BASE16_CONFIG")
if [ "$BACKGROUND" = 'dark' ]
__shell_dark "$SCHEME"
else if [ "$BACKGROUND" = 'light' ]
__shell_light "$SCHEME"
else
echo "error: unknown background type in $BASE16_CONFIG"
end
else
# default
__shell_dark default # use `base16-default-dark.sh`
end # if
# call / run `__shell_color` when issuing `color` from CLI
__shell_color $argv
end # function color
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment