Skip to content
otheme

nvim

The nvim target generates a Lua colorscheme file and auto-manages the ~/.config/nvim/init.lua block that sources it. New Neovim instances pick up the theme immediately; already-running instances are live-updated via their socket.

This page is generated from the adapter plan used by otheme set vesper --dry-run. Paths are shown exactly as otheme prints them; ~ means your home directory.

Setup

Enable the nvim target in your config and run otheme set <theme> — that's it. otheme writes the generated colorscheme and patches your init.lua automatically. No manual colorscheme line is needed.

Compatibility

Requires init.lua. If otheme finds ~/.config/nvim/init.vim but no init.lua, it will print an error and tell you either to migrate to init.lua or to add the block manually.

Files

OrderFileWhat otheme writes
1~/.config/otheme/generated/nvim.luawrite generated Neovim colorscheme for Vesper
2~/.config/nvim/init.luapatch init.lua with otheme auto-source block (idempotent)

init.lua block

otheme appends (or replaces) the following block in your init.lua. The markers let otheme locate and replace the block on subsequent runs — do not edit the lines inside it:

-- >>> otheme: auto-generated — do NOT edit this block. otheme locates and >>>
-- >>> replaces it by matching these markers; manual edits are overwritten. >>>
pcall(dofile, vim.fn.expand("~/.config/otheme/generated/nvim.lua"))
-- <<< otheme <<<

The block is appended at end-of-file on first run so it executes after your plugin/colorscheme setup (last-colorscheme-wins, avoiding lazy.nvim load-order issues).

Commands

OrderCommandWhy it runs
1nvim --headless '+call writefile([stdpath('\''run'\'')], '\''/dev/stdout'\'')' +qdiscover Neovim runtime directory for live sockets
2nvim --server '<socket>' --remote-expr 'execute("luafile ~/.config/otheme/generated/nvim.lua")'live-apply the generated colorscheme to each running Neovim socket