Skip to content

FabioAntunes/base16-fish-shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Base16 Fish Shell

See the Base16 repository for more information.
These scripts were built with Base16 Builder Go.

A pure fish shell solution to change your shell's default ANSI colours but most importantly, colours 17 to 21 of your shell's 256 colorspace (if supported by your terminal). This script makes it possible to honour the original bright colours of your shell (e.g. bright green is still green and so on) while providing additional base16 colours to applications such as Vim.

Heavily inspired on Base16 Shell

Use Cases

  • You want to use a *.256.* variant of a Terminal theme designed to honour the original bright colours.
  • You prefer to use a script instead of a terminal emulator theme to colour your shell.
  • You use this script to have different colour schemes appear on different SSH sessions.

Installation

With oh-my-fish

omf install https://github.com/FabioAntunes/base16-fish-shell

With fisher

fisher install FabioAntunes/base16-fish-shell

Open a new shell and type base16 followed by a tab to perform tab completion.

Features

  • Pure fish solution, no need to source bash functions.
  • Sets one universal variable with the current theme. Whenever a new interactive session has started, a function in conf.d will apply the theme's function.
  • Luma calculation, a global variable base16_fish_shell_background is set with the background. Possible values are dark or light Base16-vim support

Fish Shell

Fish shell has universal variables with colours. These universal variables are responsible for the theme of the prompt. You can see your current colours and modify them using the interactive webpage using the command fish_config

When you select a scheme, base16-fish-shell will shadow the universal variables with global variables. If you prefer not to change the fish prompt colours, you can disable this by running the following:

set -U base16_fish_shell_disable_prompt_colors true

This will only disable things like colours for autocompletions, errors, commands, strings.

Here's the complete list of the colours modified by the scripts:

fish_color_normal
fish_color_command
fish_color_quote
fish_color_redirection
fish_color_end
fish_color_error
fish_color_param
fish_color_comment
fish_color_match
fish_color_selection
fish_color_search_match
fish_color_history_current
fish_color_operator
fish_color_escape
fish_color_cwd
fish_color_cwd_root
fish_color_valid_path
fish_color_autosuggestion 
fish_color_user
fish_color_host
fish_color_cancel
fish_pager_color_completion
fish_pager_color_description
fish_pager_color_prefix
fish_pager_color_progress 

Base16-Vim Users

Every time you run a base16 function, it will update ~/.vimrc_background file with the current colour scheme. You need to source this file in your .vimrc: i.e. (remove the base16colorspace line if not required)

if filereadable(expand("~/.vimrc_background"))
  let base16colorspace=256
  source ~/.vimrc_background
endif

The script will also calculate the Luma of the background colour of each theme, setting your vim background to light or dark accordingly.

Troubleshooting

Run the included colour test option and check that your colour assignments appear correct. If your terminal does not support the setting of colours within the 256 colour space (e.g. Apple Terminal), colours 17 to 21 will appear blue.

setting 256 colourspace not supported

To run the test, pass the flag -t or --test to any theme functions.

base16-solarflare -t

Screenshot 2020-03-19 at 18 41 56

Inverted blacks and whites

This is the expected behaviour when using a light theme: https://github.com/chriskempson/base16-shell/issues/150