Lua
vulpes.nvim
A cyberpunk neon colorscheme for Neovim
- Files
- 24
- Size
- 64.2 KB
- Langs
- 4
- Created
- Jan 1, 2026
- Last push
- 9 months ago
README.md
vulpes.nvim
A cyberpunk neon single-color(ish) scheme for Neovim (and many other TUIs) that tries to find a balance between vibes and utility.
Includes
Neovim Terminals TUI Apps Bonus
────── ───────── ──────── ─────
◆ 100+ hlgroups ◆ Ghostty ◆ tmux ◆ MapLibre
◆ Treesitter ◆ Kitty ◆ lazygit ◆ GLSL shaders
◆ LSP ◆ Alacritty ◆ Yazi
◆ Lualine ◆ WezTerm ◆ fzf
◆ 15+ plugins ◆ bat
Requirements
- Neovim 0.8+
termguicolorsenabled- True color terminal
Install
-- lazy.nvim
{
"ejfox/vulpes.nvim",
lazy = false,
priority = 1000,
config = function()
vim.cmd.colorscheme("vulpes")
end,
}
-- packer
use { "ejfox/vulpes.nvim" }
" vim-plug
Plug 'ejfox/vulpes.nvim'
colorscheme vulpes
Config
require("vulpes").setup({
transparent = false,
italic_comments = true,
italic_keywords = false,
bold_functions = false,
cursor_color = "base", -- "base" (pink) or "white"
undercurl = true,
terminal_colors = true,
})
vim.cmd.colorscheme("vulpes")
Or via vim.g:
vim.g.vulpes_transparent = true
vim.cmd.colorscheme("vulpes")
| Option | Default | |
|---|---|---|
transparent | false | transparent bg |
italic_comments | true | |
italic_keywords | false | |
bold_functions | false | |
cursor_color | "base" | "base" or "white" |
undercurl | true | spelling errors |
terminal_colors | true | ANSI colors in :terminal |
Lualine
require("lualine").setup({
options = { theme = "vulpes" },
})
Extras
All in extras/:
Terminals
| File | Install | |
|---|---|---|
| Ghostty | vulpes-ghostty.conf | cp extras/vulpes-ghostty.conf ~/.config/ghostty/themes/vulpes |
| Kitty | vulpes-kitty.conf | include themes/vulpes.conf in kitty.conf |
| Alacritty | vulpes-alacritty.toml | import in alacritty.toml |
| WezTerm | vulpes-wezterm.lua | cp extras/vulpes-wezterm.lua ~/.config/wezterm/colors/ |
TUIs
| File | Install | |
|---|---|---|
| tmux | vulpes.tmux | source-file ~/.config/tmux/vulpes.tmux |
| Yazi | vulpes-yazi.toml | cp extras/vulpes-yazi.toml ~/.config/yazi/theme.toml |
| lazygit | vulpes-lazygit.yml | merge into ~/.config/lazygit/config.yml |
| fzf | vulpes-fzf.sh | source in shell rc |
| bat | vulpes-bat.tmTheme | copy to bat themes, bat cache --build |
Ghostty Shaders
| File | Notes | |
|---|---|---|
| TFT | shaders/vulpes-tft.glsl | subtle LCD subpixel effect |
| Chromatic | shaders/vulpes-chromatic.glsl | CRT chromatic aberration (dark mode only) |
Install: cp extras/shaders/*.glsl ~/.config/ghostty/shaders/
Config: custom-shader = ~/.config/ghostty/shaders/vulpes-tft.glsl
Bonus
| File | Notes | |
|---|---|---|
| MapLibre | vulpes-maplibre.json | cyberpunk map style, replace {key} with Maptiler API key |
Palette
Dark
| Hex | |||
|---|---|---|---|
| bg | #000000 | ||
| fg | #f2cfdf | ||
| base | #e60067 | accent pink | |
| comment | #6eedf7 | teal | |
| keyword | #ff1aca | ||
| string | #f5f5f5 | ||
| func | #ffffff | ||
| type | #ff24ab | ||
| number | #ff33c5 | ||
| boolean | #ff1043 | ||
| variable | #ff0a89 | ||
| property | #ff0a91 | ||
| operator | #f92c7a | ||
| error | #a0f7fc | inverted teal | |
| warning | #ffaa00 |
ANSI
| Normal | Bright | |
|---|---|---|
| black | #0d0d0d | #735865 |
| red | #ff001e | #ff2e2e |
| green | #ffffff | #ffffff |
| yellow | #ffaa00 | #ffcc00 |
| blue | #ff0095 | #ff2daf |
| magenta | #ff24ab | #ff40c7 |
| cyan | #6eedf7 | #a0f7fc |
| white | #f2cfdf | #ffffff |
Plugins
Highlight groups for: Telescope, Snacks.nvim, nvim-cmp, GitSigns, Which-key, BufferLine, Neo-tree, Lazy.nvim, Mason, Noice, nvim-notify
API
local palette = require("vulpes.palette")
local colors = palette.get() -- current variant
local dark = palette.dark -- dark palette
local light = palette.light -- light palette
License
MIT