Caution
I moved all color scheme code directly into my dotfiles repo. This plugin is now archived.
An inky color scheme for Neovim. Based on stephango.com/flexoki.
- Complete dark and light themes using the Flexoki color palette
- Extensible integration system for community plugin support
- Diagnostic colors
- Treesitter support
- LSP support
Install plugin with your preferred package manager.
lazy.nvim
{
"cpplain/flexoki.nvim",
lazy = false,
priority = 1000,
opts = {},
}-- Setup default and load color scheme
require("flexoki").setup()
vim.cmd.colorscheme("flexoki")By default, the color scheme will automatically switch between dark and light themes based on the value of background (:help background).
-- Switch to dark theme
vim.o.background = "dark"
-- Switch to light theme
vim.o.background = "light"Flexoki provides a comprehensive override system allowing you to customize every aspect of the theme. All configuration options are optional - use only what you need:
require("flexoki").setup({
-- Force theme (overrides vim.o.background)
-- "auto" (default) | "dark" | "light"
theme = "auto",
-- Override base palette colors
palette_override = {
red600 = "#ff0000", -- Direct hex values
base950 = "#0a0a0a", -- Darker background
},
-- Customize dark theme semantic colors
dark_override = function(colors)
return {
bg = "#000000", -- Direct hex value
tx = colors.base200, -- Or semantic color reference
blue = "#00aaff", -- Custom blue accent
}
end,
-- Customize light theme semantic colors
light_override = function(colors)
return {
bg = colors.paper, -- Semantic reference
tx = "#1a1a1a", -- Direct hex value
}
end,
-- Override specific highlight groups
highlight_override = function(colors)
return {
Comment = { fg = "#9966cc", italic = true }, -- Direct hex
Function = { fg = colors.yellow, bold = true }, -- Semantic reference
["@keyword"] = { fg = "#ff6b9d" }, -- Direct hex
}
end,
})Overrides are applied in this order:
- Palette Override → Modifies base Flexoki colors
- Theme Override → Adjusts semantic color mapping
- Highlight Override → Customizes final highlight groups
Palette Colors (for palette overrides):
- Base:
black,base950throughbase50,paper - Colors:
red950throughred50(and similar for all accent colors)
Semantic Colors (for theme overrides):
bg,bg2- Background colorsui,ui2,ui3- UI element colorstx,tx2,tx3- Text colorsred,orange,yellow,green,cyan,blue,purple,magenta- Accent colors- Each accent has variants:
red2,red3,red4for different intensities
See docs/palette.md for the complete color reference.
All override functions accept either:
- Hex strings:
"#ff0000","#1a1a1a" - Semantic references:
colors.red600,colors.base950
Plugin-specific highlights are provided via separate integration packages. Here are some integrations you may find useful:
Want to create an integration for your favorite plugin? See CONTRIBUTING.md for guidelines on developing community integrations.