lake-dweller.nvim
May 18, 2026 · View on GitHub
A minimal dark colorscheme that you can actually read at a glance.
ocean-dweller · lake-dweller · pond-dweller
Requirements
- Neovim >= 0.8.0
termguicolorsenabled- nvim-treesitter (recommended for full syntax highlighting)
Installation
lazy.nvim
{
"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,
}
Configuration
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
})
Extras
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
Lualine
require("lualine").setup({
options = {
theme = require("lualine.themes.lake-dweller"),
},
})
Variants — click to expand color palettes
lake-dweller
Dark navy with soft greens and pale blues. The default — balanced, low-contrast.
| Color | Hex | Usage |
|---|---|---|
Dark Navy | #0e0e16 | Background |
Light Grey | #d8d8d8 | Base text |
Soft Green | #8ac490 | Comments |
Muted Slate | #858d95 | Keywords |
Pale Blue | #b0c0e0 | Functions |
Muted Cyan | #70a8a8 | Types |
Rosy Pink | #d58ca6 | Strings |
Bright Red | #ef8a90 | Constants, errors |
pond-dweller
Dusky purple background with pastel mints and blush pinks. Softer, slightly warmer.
| Color | Hex | Usage |
|---|---|---|
Dusk Purple | #1a1826 | Background |
Soft Lavender | #e0dce8 | Base text |
Pastel Mint | #a8d4b0 | Comments |
Faded Lilac | #b0a8c0 | Keywords |
Light Periwinkle | #c4d0ee | Functions |
Soft Teal | #98c8c8 | Types |
Blush Pink | #e8b0c4 | Strings |
Soft Coral | #f0a8b0 | Constants, errors |
ocean-dweller
Near-black abyss with vivid greens and electric blues. Highest contrast.
| Color | Hex | Usage |
|---|---|---|
Deep Abyss | #080810 | Background |
Crisp White | #e8e8f0 | Base text |
Vivid Green | #60d890 | Comments |
Steel Blue | #90a0b8 | Keywords |
Electric Blue | #80b0f0 | Functions |
Bright Cyan | #40c8c8 | Types |
Hot Pink | #f07098 | Strings |
Vivid Red | #ff6070 | Constants, errors |
harbor-dweller
Slate-stone blue with sage greens and soft orange. Calmer, more saturated.
| Color | Hex | Usage |
|---|---|---|
Slate Stone | #1e2030 | Background |
Off White | #cdd6f4 | Base text |
Sage Green | #9ec396 | Comments |
Slate Grey | #8b95a0 | Keywords |
Sky Blue | #7aa2f7 | Functions |
Sandy Khaki | #d4be7e | Types |
Soft Orange | #e09778 | Strings |
Muted Red | #e06c75 | Constants, errors |
nay-dweller
Inspired by Jonathan Blow's Emacs theme — deep teal background, sparse cool/pale palette, vivid green comments.
| Color | Hex | Usage |
|---|---|---|
Deep Teal | #062329 | Background |
Wheat Cream | #d3b58d | Base text |
Pale Sky | #c1d1e3 | Keywords |
Warm Gold | #fdc35e | Functions |
Driftwood Tan | #d8a070 | Types |
Vivid Green | #44b340 | Comments |
Teal Green | #2ec09c | Strings |
Soft Cyan | #7ad0c6 | Constants, numbers |
Deep Blue | #1a3478 | Selection |
Muted Red | #e06c75 | Errors |
Supported Plugins
- 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
Philosophy
This theme makes some opinionated decisions based on the following principles:
You don't need a color for everything
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 don't need your attention
Keywords are the most repetitive part of code and therefore the easiest to read quickly—you don't really need them to stand out.
Comments are important
You should not neglect your comments. They should pop out immediately, while being easy to distinguish from actual code.
Inspiration
License
MIT
Dark Navy
Light Grey
Soft Green
Muted Slate
Pale Blue
Muted Cyan
Rosy Pink
Bright Red
Dusk Purple
Soft Lavender
Pastel Mint
Faded Lilac
Light Periwinkle
Soft Teal
Blush Pink
Soft Coral
Deep Abyss
Crisp White
Vivid Green
Steel Blue
Electric Blue
Bright Cyan
Hot Pink
Vivid Red
Slate Stone
Off White
Sage Green
Slate Grey
Sky Blue
Sandy Khaki
Soft Orange
Muted Red
Deep Teal
Wheat Cream
Pale Sky
Warm Gold
Driftwood Tan
Vivid Green
Teal Green
Soft Cyan
Deep Blue