A minimal dark colorscheme that you can actually read at a glance.
ocean-dweller · lake-dweller · pond-dweller
- Neovim >= 0.8.0
termguicolorsenabled- nvim-treesitter (recommended for full syntax highlighting)
{
"yonatanperel/lake-dweller.nvim",
lazy = false,
priority = 1000,
config = function()
require("lake-dweller").setup({
variant = "lake-dweller", -- "lake-dweller", "pond-dweller", "ocean-dweller", "harbor-dweller", or "nay-dweller"
})
vim.cmd.colorscheme("lake-dweller")
end,
}require("lake-dweller").setup({
variant = "lake-dweller", -- "lake-dweller", "pond-dweller", "ocean-dweller", "harbor-dweller", or "nay-dweller"
transparent = false, -- enable transparent background
italics = true, -- enable italic text
float_background = false, -- distinct background for floating windows
})Theme files for other applications live under extras/, with one file per variant in each directory:
- WezTerm —
extras/wezterm/<variant>.toml - Ghostty —
extras/ghostty/<variant> - Alacritty —
extras/alacritty/<variant>.toml
require("lualine").setup({
options = {
theme = require("lualine.themes.lake-dweller"),
},
})Variants — click to expand color palettes
Dark navy with soft greens and pale blues. The default — balanced, low-contrast.
Dusky purple background with pastel mints and blush pinks. Softer, slightly warmer.
Near-black abyss with vivid greens and electric blues. Highest contrast.
Slate-stone blue with sage greens and soft orange. Calmer, more saturated.
Inspired by Jonathan Blow's Emacs theme — deep teal background, sparse cool/pale palette, vivid green comments.
- nvim-treesitter
- lualine.nvim
- nvim-cmp
- Telescope
- fzf-lua
- Oil.nvim
- Trouble.nvim
- which-key.nvim
- Snacks.nvim
- nvim-notify
- gitsigns.nvim
- noice.nvim
- blink.cmp
- lazy.nvim
- indent-blankline.nvim
- mini.nvim
- flash.nvim
- neo-tree.nvim
This theme makes some opinionated decisions based on the following principles:
Only use distinct colors for specific, common elements—so you can tell at a glance what you're looking at:
- Functions
- Types
- Keywords
- Constant values—numbers, booleans, strings, nulls, etc. Strings can use slightly different shades for clarity.
- Comments
Keywords are the most repetitive part of code and therefore the easiest to read quickly—you don't really need them to stand out.
You should not neglect your comments. They should pop out immediately, while being easy to distinguish from actual code.
MIT








































