Requires telescope.nvim
- lazy.nvim
{
"chadcat7/prism",
lazy = true,
events = {"UIEnter"},
}
require("prism"):setup({
customSchemes = {
-- Add any number of schemes here
{
name = "serenade",
background = "#23282b",
foreground = "#cde5c3",
cursorline = "#272b2f",
comment = "#767b82",
darker = "#1e2124",
cursor = "#bfddb2",
black = "#23282b", -- useful when background is transparent
color0 = "#2E3338",
color1 = "#d76e6e",
color2 = "#ACB765",
color3 = "#e5a46b",
color4 = "#82abbc",
color5 = "#d39bb6",
color6 = "#87c095",
color7 = "#bfddb2",
color8 = "#373D41",
color9 = "#d76e6e",
color10 = "#ACB765",
color11 = "#e5a46b",
color12 = "#82abbc",
color13 = "#d39bb6",
color14 = "#87c095",
color15 = "#cfe0c7",
},
},
currentTheme = "serenade",
reset = true, -- applies the currentTheme everytime neovim is opened
-- currentTheme = "onedarker",
customFiles = vim.fn.stdpath "config" .. "/lua/hls",
transparent = false,
reload = { "lualine" }, -- modules to be reloaded everytime theme is set
})
-
If a theme with the same name is already included in the defaults, theme specified by the user will be given preference
-
For using custom highlights, make files in the
customFiles
folder. For example
-- .config/nvim/lua/hls/alpha.lua
-- you can name the file however you want, because all the files in lua/hls would be read
local utils = require("prism.utils")
local colors = require("prism.themer"):getColors()
return {
AlphaHeader = { fg = colors.color4, bg = colors.background },
AlphaLabel = { fg = colors.color7, bg = colors.background },
AlphaIcon = { fg = colors.color5, bold = true, },
AlphaKeyPrefix = { fg = colors.color1, bg = utils.darken(colors.color1, colors.black, 0.04) },
AlphaMessage = { fg = colors.color2, bg = colors.background },
AlphaFooter = { fg = colors.comment, bg = colors.background },
}
require("prism"):setup({
reset = true, -- applies the currentTheme everytime neovim is opened
currentTheme = "onedarker",
reload = { "lualine" }, -- modules to be reloaded everytime theme is set
})
But yes calling the setup function atleast once is important!
- Aquarium
- Ayu
- Cosmicdecay
- Cat
- Decay
- Dracula
- Everblush
- Everforest
- Fox
- Ghost
- Groove
- Gruv
- Github
- Horizon
- Kanagawa
- Kizu
- Material Dark
- Monokai Pro
- Mountain
- Nirvana
- Nord
- Onedarker
- Onenord
- Oxo
- Radium
- Serenade
- Serenity
- Sweetpastel
- Synthwave84
- Tokyodull
- Tundra
- Verdant
- Vixima
- Vscodedull
- Yata
- Yoru
There is telescope picker included with this config. Shows the default and as well as the user defined colorschemes. Invoke it by
:PrismTelescope
For setting theme without the picker -
:PrismSet <themename>
For setting random theme -
:PrismRandom
For even more options for coloring, a bunch of methods have been provided in prism.utils
.
M.darken(hex, bg, amount)
M.lighten(hex, fg, amount)
M.mix(hex1, hex2, weight)
M.saturate(hex1, factor)
M.moreRed(hex1, factor)
M.moreGreen(hex1, factor)
M.moreBlue(hex1, factor)
M.warm(hex1, factor)
M.cold(hex1, factor)
- lualine
- bufferline
- barbecue
- nvim-cmp
- nvim-tree
- telescope
- treesitter
- whichkey
- devicons
- harpoon
- hop
- notify
- Custom highlights
- Transparency
- Some default themes
- More color related functions
- Telescope Prompt