Programmatic lua library for setting base16 themes in Neovim.
local theme_names = base16.theme_names()
base16_position = 1
function cycle_theme()
base16_position = (base16_position % #theme_names) + 1
base16(base16.themes[theme_names[base16_position]], true)
end
Install via your plugin manager. e.g.
Plug "norcalli/nvim-base16.lua"
lua << EOF
local base16 = require 'base16'
base16(base16.themes.brewer, true)
EOF
This is how I use it. Uses norcalli/nvim.lua
.
lua << EOF
nvim = require 'nvim'
local base16 = require 'base16'
base16(base16.themes[nvim.env.BASE16_THEME or "3024"], true)
EOF
You can define your own themes and use them with the base16
function as long
as they match the format described below. I know the format is annoying to
define, so the base16.theme_from_array
utility function is available.
Alias for base16.apply_theme(theme_definition: dict, use_256_colorspace: bool)
.
Example:
base16(base16.themes["brewer"], true)
Return a list of all available theme names. Shortcut for fetching the keys from base16.themes
.
Example:
print(vim.inspect(base16.theme_names()))
Formats an array of 16 hex color strings into a dictionary suitable for use
with base16.apply_theme
.
Example:
local theme = base16.theme_from_array {
"383838"; "404040"; "606060"; "6f6f6f";
"808080"; "dcdccc"; "c0c0c0"; "ffffff";
"dca3a3"; "dfaf8f"; "e0cf9f"; "5f7f5f";
"93e0e3"; "7cb8bb"; "dc8cc3"; "000000";
}
base16(theme, true)
Dictionary of definitions to be used by base16
or base16.apply_theme
.
Example:
base16.themes["zenburn"] == {
base00 = "383838"; base01 = "404040"; base02 = "606060"; base03 = "6f6f6f";
base04 = "808080"; base05 = "dcdccc"; base06 = "c0c0c0"; base07 = "ffffff";
base08 = "dca3a3"; base09 = "dfaf8f"; base0A = "e0cf9f"; base0B = "5f7f5f";
base0C = "93e0e3"; base0D = "7cb8bb"; base0E = "dc8cc3"; base0F = "000000";
}
Because this includes a copy of
norcalli/nvim.lua
, you should put
this after norcalli/nvim.lua
in the plugin list because lua module resolution
is first-come-first-served, i.e.
Plug "norcalli/nvim.lua"
Plug "norcalli/nvim-base16.lua"
Chris Kempson and Base16 and base16-vim