A dark, low-contrast colorscheme for Neovim inspired by roses and geared towards dark theme lovers.
- Neovim >= 0.9.0
use("water-sucks/darkrose.nvim")
{
"water-sucks/darkrose.nvim",
lazy = false,
priority = 1000,
}
require("darkrose").setup({
-- Override colors
colors = {
orange = "#F87757",
},
-- Override existing or add new highlight groups
overrides = function(c)
return {
Class = { fg = c.magenta },
["@variable"] = { fg = c.fg_dark },
}
end,
-- Styles to enable or disable
styles = {
bold = true, -- Enable bold highlights for some highlight groups
italic = true, -- Enable italic highlights for some highlight groups
underline = true, -- Enable underline highlights for some highlight groups
}
})
vim.cmd.colorscheme("darkrose")
There is no need to run the setup function if you do not want to customize the
colorscheme; run vim.cmd.colorscheme("darkrose")
, and you're good to go. Color
names are defined here.
These are plugins explicitly supported by the colorscheme (more is always better, feel free to add more in a PR!):
- LSP diagnostics
- LSP semantic highlighting
- bufferline.nvim*
- diffview.nvim
- fidget.nvim
- gitsigns.nvim
- indent-blankline.nvim
- lazy.nvim
- neorg*
- noice.nvim
- nvim-cmp
- nvim-dap-ui
- nvim-tree.lua
- nvim-treesitter
- telescope.nvim
- vimtex
- which-key.nvim
Certain plugins have too many highlights to define inside the theme file without ripping my hair out. They are the plugins marked with an asterisk above, and they have special integrations provided. These are how to use them:
bufferline.nvim
Pass the highlighting integration as an argument to bufferline.nvim's setup function. It must be loaded after darkrose is set up for this to work.
-- Define overrides to any highlight arguments here; this is an optional argument
-- to the generate function.
local overrides = {}
require("bufferline").setup({
highlights = require("darkrose.integrations.bufferline").generate(overrides),
})
neorg
Pass the highlighting integration as an argument to neorg's setup function. It must be loaded after darkrose is set up for this to work.
-- Define overrides to any highlight arguments here; this is an optional argument
-- to the generate function.
local overrides = {}
require("neorg").setup({
load = {
["core.highlights"] = {
config = {
highlights = require("darkrose.integrations.neorg").generate(overrides),
},
},
},
})
This is my first plugin; I threw together a bunch of colors that I liked, and this is the result. There is absolutely no color theory involved, and I'm not a graphic designer; however, I was not satisfied with any of the colorschemes for Neovim at the time of creation. If there are any problems with or ways to improve the colorscheme, please file an issue. I would love to make this colorscheme better for everyone.
This is also extremely unstable, and breaking changes can be made at any time until a 1.0 release happens. This will happen when the colorscheme's colors are stabilized, and when more plugins and languages are supported.
- rose-pine/neovim :: for inspiring the colorscheme
- folke/tokyonight.nvim :: for helping me structure my code properly
- catppuccin/nvim :: for the special integrations idea and implementation