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
,base950
throughbase50
,paper
- Colors:
red950
throughred50
(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
,red4
for 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.