cwal.nvim
August 15, 2026 ยท View on GitHub
cwal.nvim is a dynamic Neovim colorscheme that reads your generated cwal palette and applies it across core UI, syntax, Treesitter, diagnostics, completion popups, Bufferline, and Lualine.
For now, only dark mode is supported.
๐ผ Preview
โจ Features
- Uses your live
cwalcolors fromcolors-nvim.lua - Automatically reloads highlights when your
cwal.inichanges - Extensive highlight coverage for:
- Core editor/UI groups
- Vim syntax groups
- Treesitter and semantic token groups
- LSP diagnostics (
Diagnostic*+ legacyLspDiagnostics*links) - Popup/completion UI (
Pmenu*,Cmp*,BlinkCmp*) - Bufferline (
BufferLine*) - Lualine theme (
theme = "cwal")
๐ฆ Requirements
- Neovim 0.10+
cwal- A working
cwalsetup that generates:~/.config/cwal/cwal.inicolors-nvim.luainside your configuredout_dir
๐ง Installing cwal
Install from the AUR:
paru -S cwal-git
or
yay -S cwal-git
๐จ Color Source
cwal.nvim reads out_dir from your cwal.ini, then loads:
<out_dir>/colors-nvim.lua
๐ Installation
lazy.nvim
{
"nitinbhat972/cwal.nvim",
priority = 1000,
config = function()
vim.cmd.colorscheme("cwal")
end,
}
vim.pack (Neovim 0.12+)
vim.pack.add({
{ src = "https://github.com/nitinbhat972/cwal.nvim" },
})
vim.cmd.colorscheme("cwal")
โ๏ธ Usage
Set the colorscheme:
:colorscheme cwal
or in Lua:
vim.cmd.colorscheme("cwal")
๐ Lualine Integration
require("lualine").setup({
options = {
theme = "cwal",
},
})
The colorscheme defines most highlight groups, ensuring compatibility with the majority of plugins.
Note: Bufferline highlight groups are not refreshed automatically on colorscheme change and may require a Neovim restart.
๐ How Reload Works
cwal.nvim watches:
<out_dir>/colors-nvim.lua
On change, it:
- Reloads palette values from
colors-nvim.lua - Reapplies all highlight groups
- Reloads Lualine (if its theme is set to
"cwal") - Triggers the
CwalReloadUserevent
๐ Events
You can hook into the reload process using the CwalReload User event. This is useful for refreshing other plugins or custom highlights that depend on the palette.
vim.api.nvim_create_autocmd("User", {
pattern = "CwalReload",
callback = function()
-- Your custom logic here, e.g., refreshing a custom statusline or plugin
print("Cwal colors have been reloaded!")
end,
})
๐ Troubleshooting
Color file not found: .../colors-nvim.lua
- Check
out_dirin yourcwal.ini - Confirm
<out_dir>/colors-nvim.luaexists
๐ Notes
- No user options are required at the moment.
- The plugin is intentionally palette-driven โ regenerate your
cwalcolors and Neovim follows.
๐ License
Licensed under GNU GPL v3.0 โ always free and open-source.
Star the project on GitHub if you find it useful!