A warm, earthy color theme for Neovim with vibrant accents and balanced tones.
Earthsong is a color theme for Neovim featuring a warm, earthy palette with vibrant accents. The theme includes two variants:
- Earthsong - The default warm theme with vibrant, saturated colors
- Earthsong Mute - A more muted, understated variant with softer tones
Install earthsong using your favorite package manager:
-- lua/plugins/earthsong.lua
return {
"guillermodotn/nvim-earthsong",
name = "earthsong",
config = function()
vim.cmd("colorscheme earthsong")
end
}{ source = "guillermodotn/nvim-earthsong", as = "earthsong" }-- Simple usage
require("earthsong").setup()
vim.cmd("colorscheme earthsong")require("earthsong").setup({
variant = "auto", -- auto, main, or mute
dark_variant = "main", -- main or mute (default variant)
dim_inactive_windows = false,
extend_background_behind_borders = true,
enable = {
terminal = true,
legacy_highlights = true,
migrations = true,
},
styles = {
bold = true,
italic = true,
transparency = false,
},
groups = {
border = "muted",
link = "moss",
panel = "surface",
error = "terracotta",
hint = "moss",
info = "sage",
warn = "amber",
todo = "clay",
},
highlight_groups = {
-- Custom overrides
-- Comment = { fg = "sage", italic = true },
},
before_highlight = function(group, highlight, palette)
-- Modify highlights before applying
end,
})
vim.cmd("colorscheme earthsong")
-- Or use specific variant:
-- vim.cmd("colorscheme earthsong-main")
-- vim.cmd("colorscheme earthsong-mute")- Base:
#292520- Warm charcoal background - Surface:
#322d27- Slightly lighter surface - Overlay:
#3c3731- UI overlay color - Text:
#e5c7a9- Warm light text - Terracotta:
#ff645a- Solid red for errors - Amber:
#f5ae2e- Warm golden yellow - Clay:
#d0633d- Warm orangy brown - Oak:
#509552- Muted green - Sage:
#1398b9- Cool cyan/blue - Moss:
#85c54c- Deep green - Leaf:
#98e036- Bright lime green
A more understated variant with softer, less saturated tones for reduced eye strain during extended use:
- Softer background and text colors
- Reduced color saturation
- Ideal for long coding sessions
- telescope.nvim
- nvim-tree.lua
- gitsigns.nvim
- nvim-cmp
- indent-blankline.nvim
- bufferline.nvim
- which-key.nvim
- lualine.nvim
- And many more!
require("earthsong").setup({
groups = {
error = "terracotta",
warn = "amber",
},
})require("earthsong").setup({
styles = {
italic = false,
},
})require("earthsong").setup({
highlight_groups = {
Comment = { fg = "subtle", italic = true },
String = { fg = "amber", italic = false },
},
})require("earthsong").setup({
before_highlight = function(group, highlight, palette)
-- Disable undercurls
if highlight.undercurl then
highlight.undercurl = false
end
end,
})









