A collection of colorschemes for neovim (Neovim 8.0+ required), written in lua. This first version of starry plugin was built based on
Following colorschemes were added later on:
NormalFloat
, FloatShadow
, LspReferenceRead/Write
The basic color palettes of material is from material.vim
Color palettes from github.com/dracula/vim
reddish tone of dracula
Color palettes from colors/monokai.vim
The sublime 4.0 default color scheme
Color palettes from twolfson/sublime-files
Please check README of starry.nvim project for setups.
I heard green can reduce eye strain :-P
Colorful colorscheme
Bluish colorscheme
Some of the scheme allow choose nighttime and day time mode, you can set starry_daylight_switch to true to turn on this feature. Here is an example for nighttime and daytime for earlysummer color scheme
The only light colorschem
Yellow text on blue background. Color palette from Ukraine nation flag.
All the plugins supported by starry.nvim, e.g. Treesitter, LSP, Telescope, NvimTree...
nvim-cmp
:
Plug
Plug 'ray-x/starry.nvim'
packer:
use {'ray-x/starry.nvim', setup = function()
-- see example setup below
vim.g.starry_italic_comments = true
...
end}
Note: vim way of setting up global variable is deprecated, please use lua way to setup color scheme
local config = {
border = false, -- Split window borders
italics = {
comments = false, -- Italic comments
strings = false, -- Italic strings
keywords = false, -- Italic keywords
functions = false, -- Italic functions
variables = false -- Italic variables
},
contrast = { -- Select which windows get the contrast background
enable = true, -- Enable contrast
terminal = true, -- Darker terminal
filetypes = {}, -- Which filetypes get darker? e.g. *.vim, *.cpp, etc.
},
text_contrast = {
lighter = false, -- Higher contrast text for lighter style
darker = false -- Higher contrast text for darker style
},
disable = {
background = false, -- true: transparent background
term_colors = false, -- Disable setting the terminal colors
eob_lines = false -- Make end-of-buffer lines invisible
},
style = {
name = 'moonlight', -- Theme style name (moonlight, earliestsummer, etc.)
-- " other themes: dracula, oceanic, dracula_blood, 'deep ocean', darker, palenight, monokai, mariana, emerald, middlenight_blue
disable = {}, -- a list of styles to disable, e.g. {'bold', 'underline'}
fix = true,
darker_contrast = false, -- More contrast for darker style
daylight_swith = false, -- Enable day and night style switching
deep_black = false, -- Enable a deeper black background
},
custom_colors = {
variable = '#f797d7',
},
custom_highlights = {
LineNr = { fg = '#777777' },
Idnetifier = { fg = '#ff4797' },
}
}
require('starry').setup(config)
-- Following are deprecated
-- let starry_italic = v:true "set to false to disable italic globally
-- let starry_italic_comments = v:true
-- let starry_italic_string = v:false
-- let starry_italic_keywords = v:false
-- let starry_italic_functions = v:false
-- let starry_italic_variables = v:false
-- let starry_contrast = v:true
-- let starry_borders = v:false
-- let starry_disable_background = v:false "set to true to disable background and allow transparent background
-- let starry_style_fix=v:true "disable random loading
-- let starry_style="moonlight" "load moonlight everytime or
-- let starry_darker_contrast=v:true "darker background
-- let starry_deep_black=v:false "OLED deep black
-- let starry_set_hl=v:false " Note: enable for nvim 0.6+, it is faster (loading time down to 4~6s from 7~11s), but it does
-- " not overwrite old values and may has some side effects
-- let starry_daylight_switch=false "this allow using brighter color
-- " other themes: dracula, oceanic, dracula_blood, 'deep ocean', darker, palenight, monokai, mariana, emerald, middlenight_blue
Toggle style
:colorscheme starry " this allow pickup a colorscheme randomly
:colorscheme mariana " this allow switch to mariana
or
:lua require('starry.functions').toggle_style()
or
:Starry
Change to specific style
:Starry dracula_blood
lua require('starry.functions').change_style("dracula_blood")
override default color group, please also check material.nvim Configuration Example:
local starry = require 'starry'
local colors = require 'starry.colors'
starry.setup{
custom_highlights = {
LineNr = { bg = '#9F809E' }
CursorLine = { fg = colors.editor.constrast , underline = true },
-- This is a list of possible values
-- override @string of treesitter
@string = {
fg = "#339922", -- foreground color
bg = "NONE", -- background color
sp = "#779988", -- special color (for colored underlines, undercurls...)
bold = false, -- make group bold
italic = false, -- make group italic
underline = false, -- make group underlined
undercurl = false, -- make group undercurled
underdot = false, -- make group underdotted
underdash = false -- make group underslashed
striketrough = false, -- make group striked trough
reverse = false, -- reverse the fg and bg colors
link = "Comment" -- link to some other highlight group
}
},
-- Custom colors must be a function that takes in the default colors table as
-- a paramter, and then modifies them.
-- To se the available colors, see lua/material/colors/init.lua
custom_colors = function(colors)
colors.editor.bg = "#SOME_COLOR"
colors.main.purple = "#SOME_COLOR"
colors.lsp.error = "#SOME_COLOR"
end
}
vim.cmd('colorscheme oceanic')