Vulkanite is a dark Neovim colorscheme for real cool dudes. If you're a cool dude and you like cool dude colorschemes, maybe Vulkanite is for you.
Neovim 0.10 or later and true-color support is required.
{
"kyerpotts/vulkanite.nvim",
lazy = false,
priority = 1000,
config = function()
require("vulkanite").setup({})
vim.cmd.colorscheme("vulkanite")
end,
}Current LazyVim releases require Neovim 0.11.2 or later. Add this to lua/plugins/vulkanite.lua and let LazyVim handle the final colorscheme load:
return {
{
"kyerpotts/vulkanite.nvim",
lazy = false,
priority = 1000,
main = "vulkanite",
opts = {},
},
{
"LazyVim/LazyVim",
opts = {
colorscheme = "vulkanite",
},
},
}vim.pack.add({
{ src = "https://github.com/kyerpotts/vulkanite.nvim" },
})
require("vulkanite").setup({})
vim.cmd.colorscheme("vulkanite")Call setup() before loading the colorscheme if you want to change defaults:
require("vulkanite").setup({
transparent = true,
terminal_colors = true,
styles = {
comments = { italic = false },
functions = { italic = true },
types = { bold = true },
},
})
vim.cmd.colorscheme("vulkanite")Vulkanite automatically detects supported plugins installed through lazy.nvim or vim.pack. Built-in highlights cover:
- gitsigns.nvim
- telescope.nvim
- nvim-cmp and blink.cmp
- which-key.nvim
- lazy.nvim
- bufferline.nvim
- neo-tree.nvim and nvim-tree.lua
- noice.nvim and nvim-notify
- snacks.nvim
- nvim-treesitter-context
- render-markdown.nvim
You can enable or disable individual integrations through plugins:
require("vulkanite").setup({
plugins = {
telescope = true,
neo_tree = false,
},
})For lualine, load Vulkanite first and use the bundled theme:
require("lualine").setup({
options = { theme = "vulkanite" },
})Use on_colors for semantic colors and on_highlights for individual groups:
require("vulkanite").setup({
on_colors = function(colors)
colors.accent = "#8be086"
end,
on_highlights = function(highlights, colors)
highlights.NormalFloat = { fg = colors.fg, bg = colors.bg }
end,
})The named 16-color palette and its complete Base16 mapping are available from Lua:
local palette = require("vulkanite.palette").get()
local base16 = palette.base16The full option reference, integration keys, callback behavior, palette names, and compatibility notes are available inside Neovim:
:help vulkaniteYou can also read doc/vulkanite.txt directly.
Want to help? Read the contributing guide. You can also find the changelog, latest release notes, and MIT license here.



