Srcery is a color scheme with clearly defined contrasting colors and a slightly earthy tone.
Table of content
You don’t need to do anything for this colorscheme to work in gVim or MacVim.
To use Srcery in the terminal you need to change your terminal emulator’s so-called “ASCII” colors to the ones in the table below. There's a list of terminal configurations in the srcery-terminal repository.
Additionally Srcery uses some xterm 256 colors to pad out the color selection, no extra configuration needed.
Download or clone srcery's repository to a location of your choosing and set your runtimepath
correctly, otherwise srcery will not work as it relies on the autoload
functionality.
You can also install with your favourite plugin manager.
Vim 8 has native support for loading plugins by using packages
. All you need to do to, is to clone this repository into ~/.vim/pack/themes/opt
.
git clone https://github.com/srcery-colors/srcery-vim ~/.vim/pack/themes/opt/srcery-vim
And then set your .vimrc
accordingly.
packadd! srcery-vim
colorscheme srcery
The same works for Neovim, but you have to clone it into a path where Neovim can find it.
git clone https://github.com/srcery-colors/srcery-vim $XDG_CONFIG_HOME/nvim/pack/themes/opt
call dein#add('srcery-colors/srcery-vim')
cd ~/.vim/bundle
git clone https://github.com/srcery-colors/srcery-vim
Plug 'srcery-colors/srcery-vim'
use {'srcery-colors/srcery-vim', as = 'srcery'}
:color srcery
If you like what you see and decide to make srcery your default colorscheme, add the relevant line to your .vimrc
:
colorscheme srcery
Srcery includes a few toggles due to discrepancies in the various setups possible.
To change any of these you'd put something like this in your .vimrc
let g:srcery_italic = 1
Make sure that you set these variables before assigning colorscheme
.
You can customize each of Srcery's colors, to customize say the red color:
let g:srcery_red = '#FF0000'
Inside a 256-color terminal emulator, additional colors are configurable via setting the corresponding variable with the _cterm suffix, e.g.
let g:srcery_hard_black_cterm = 232
Refer to the table for a full list of color variables, hexes and more.
This will only work on set termguicolors
and in gVim, to override terminal
colors, do so in your terminal
configuration.
Enables bold text.
Default: 1
Enables italic text.
Default: gui 1, term 0
Enables underlined text.
Default: 1
Enables undercurled text.
Default: 1
Enables strikethrough text.
Default: 1
Enable or disable inverse highlighting (foreground becomes background, vice versa). This is used for visual selection, search highlights and some other things.
Srcery will fall back to other methods of highlighting if this is disabled.
Default: 1
Highlight search matches using inverse colors.
Default: 0
When enabled will highlight matching delimiters using inverse colors.
(:DoMatchParen
)
Works best with Rainbow parenthesis.
Default: 0
Dims lisp dialects delimiters to a fairly dark gray (xgray5 specifically).
Default: 0
Sets up alternate highlighting for colored underline/undercurl. Some environments are unable to color underline, so this setting will set either the background or foreground to whatever color the underline is supposed to be.
This comes in handy if colored underline doesn't work, or underline is disabled entirely.
Default: 'NONE'
Possible Values: 'fg', 'bg'
Italicize types if italic is enabled.
Default: 0
Let's you customize the background color. This var takes a list with two values, with a quoted HEX in the first position, and a terminal color index for the second position. This lets you set both a 24-bit color, and a 8bit terminal color index.
You can specify 'NONE'
as one of the values to make it transparent, as such
['NONE', 'NONE']
would be the same as the previous option
g:srcery_bg_passthrough = 1
.
You can specify 'DEFAULT'
as one of the values in order to use that
position's default value.
Default: [g:srcery_black, 0]
If enabled, will set the terminal background in vim to hard black. Note that this currently only works in Vim, not Neovim.
Default: 1
Typeface used in screenshots is Iosevka
Lightline colorscheme. To use it, include 'srcery' value in lightline configuration, like so:
let g:lightline = {
\ 'colorscheme': 'srcery',
\ }
Lualine colorscheme. It's the same as Lightline's. Enable it in your configuration:
require('lualine').setup {
options = {
theme = 'srcery',
},
}
Thanks to MindTooth, Srcery now includes an Airline theme.
These don't require any additional configuration.
- ale
- coc.nvim
- ctrlp.vim
- fzf.vim
- nerdtree
- nvim-cmp
- nvim-treesitter
- telescope-nvim
- vim-clap
- vim-gitgutter
- vim-indent-guides
- vim-sneak
- vim-startify
Plugin support is still a work in progress and more will come, if there is anything missing that you'd like to add please open an issue and let me know.
This project started as essentially a palette swap of Gruvbox and all credit goes to the maintainers of that fantastic color scheme. I wanted something a bit sharper, but I loved the syntax color choices of Gruvbox. I also tried to make the theme as simple to use as possible, which was inspired by Flattened. Other themes that influenced Srcery:
Ensure that 256 colors are enabled in vim by setting this option before setting the colorscheme.
set t_Co=256
If you want to use GUI colors in terminal make sure that tmux pass through 24-bit color codes. For example, if you use Termite add it to the terminal overrides setting:
set -ga terminal-overrides ",xterm-termite:Tc"
For other terminals, replace xterm-termite
with the relevant
terminal type. (stored in $TERM
).
Check out srcery-emacs