flexoki.nvim
September 10, 2025 · View on GitHub
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.
Features
- Complete dark and light themes using the Flexoki color palette
- Extensible integration system for community plugin support
- Diagnostic colors
- Treesitter support
- LSP support
Installation
Install plugin with your preferred package manager.
lazy.nvim
{
"cpplain/flexoki.nvim",
lazy = false,
priority = 1000,
opts = {},
}
Usage
Load the color scheme
-- Setup default and load color scheme
require("flexoki").setup()
vim.cmd.colorscheme("flexoki")
Switch between dark and light themes
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"
Customization
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,
})
Override Order
Overrides are applied in this order:
- Palette Override → Modifies base Flexoki colors
- Theme Override → Adjusts semantic color mapping
- Highlight Override → Customizes final highlight groups
Available Colors
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.
Color Values
All override functions accept either:
- Hex strings:
"#ff0000","#1a1a1a" - Semantic references:
colors.red600,colors.base950
Integrations
Plugin-specific highlights are provided via separate integration packages. Here are some integrations you may find useful:
Coming soon
Want to create an integration for your favorite plugin? See CONTRIBUTING.md for guidelines on developing community integrations.