mirror of
https://github.com/rose-pine/neovim.git
synced 2025-10-15 12:38:53 +02:00
init
This commit is contained in:
commit
f0c2be8d63
7 changed files with 502 additions and 0 deletions
9
colors/rose-pine.vim
Normal file
9
colors/rose-pine.vim
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
lua << EOF
|
||||||
|
package.loaded['rose-pine'] = nil
|
||||||
|
package.loaded['rose-pine.util'] = nil
|
||||||
|
package.loaded['rose-pine.palette'] = nil
|
||||||
|
package.loaded['rose-pine.theme'] = nil
|
||||||
|
package.loaded['rose-pine.functions'] = nil
|
||||||
|
|
||||||
|
require('rose-pine').set()
|
||||||
|
EOF
|
||||||
22
lua/rose-pine/functions.lua
Normal file
22
lua/rose-pine/functions.lua
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
if vim.g.rose_pine_variant_switch == nil then
|
||||||
|
vim.g.rose_pine_variant_switch = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
local select_variant = function(variant)
|
||||||
|
vim.g.rose_pine_variant = variant
|
||||||
|
print("Rosé Pine", variant)
|
||||||
|
vim.cmd([[colorscheme rose-pine]])
|
||||||
|
end
|
||||||
|
|
||||||
|
local toggle_variant = function(variants)
|
||||||
|
local options = variants or { "base", "moon", "dawn" }
|
||||||
|
|
||||||
|
vim.g.rose_pine_variant_switch = (vim.g.rose_pine_variant_switch % table.getn(options)) + 1
|
||||||
|
|
||||||
|
select_variant(options[vim.g.rose_pine_variant_switch])
|
||||||
|
end
|
||||||
|
|
||||||
|
return {
|
||||||
|
select_variant = select_variant,
|
||||||
|
toggle_variant = toggle_variant,
|
||||||
|
}
|
||||||
7
lua/rose-pine/init.lua
Normal file
7
lua/rose-pine/init.lua
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
local util = require('rose-pine.util')
|
||||||
|
|
||||||
|
local set = function()
|
||||||
|
util.load()
|
||||||
|
end
|
||||||
|
|
||||||
|
return { set = set }
|
||||||
58
lua/rose-pine/palette.lua
Normal file
58
lua/rose-pine/palette.lua
Normal file
|
|
@ -0,0 +1,58 @@
|
||||||
|
local palette = {
|
||||||
|
base = '#191724',
|
||||||
|
surface = '#1f1d2e',
|
||||||
|
overlay = '#26233a',
|
||||||
|
inactive = '#555169',
|
||||||
|
subtle = '#6e6a86',
|
||||||
|
text = '#e0def4',
|
||||||
|
love = '#eb6f92',
|
||||||
|
gold = '#f6c177',
|
||||||
|
rose = '#ebbcba',
|
||||||
|
pine = '#31748f',
|
||||||
|
foam = '#9ccfd8',
|
||||||
|
iris = '#c4a7e7',
|
||||||
|
highlight = '#2a2837',
|
||||||
|
highlight_inactive = '#211f2d',
|
||||||
|
highlight_overlay = '#3a384a',
|
||||||
|
none = 'NONE',
|
||||||
|
}
|
||||||
|
|
||||||
|
if vim.g.rose_pine_variant == 'dawn' then
|
||||||
|
palette = {
|
||||||
|
base = '#faf4ed',
|
||||||
|
surface = '#fffaf3',
|
||||||
|
overlay = '#f2e9de',
|
||||||
|
inactive = '#9893a5',
|
||||||
|
subtle = '#6e6a86',
|
||||||
|
text = '#575279',
|
||||||
|
love = '#b4637a',
|
||||||
|
gold = '#ea9d34',
|
||||||
|
rose = '#d7827e',
|
||||||
|
pine = '#286983',
|
||||||
|
foam = '#56949f',
|
||||||
|
iris = '#907aa9',
|
||||||
|
highlight = '#eee9e6',
|
||||||
|
highlight_inactive = '#f2ede9',
|
||||||
|
highlight_overlay = '#e4dfde',
|
||||||
|
}
|
||||||
|
elseif vim.g.rose_pine_variant == 'moon' then
|
||||||
|
palette = {
|
||||||
|
base = '#232136',
|
||||||
|
surface = '#2a273f',
|
||||||
|
overlay = '#393552',
|
||||||
|
inactive = '#59546d',
|
||||||
|
subtle = '#817c9c',
|
||||||
|
text = '#e0def4',
|
||||||
|
love = '#eb6f92',
|
||||||
|
gold = '#f6c177',
|
||||||
|
rose = '#ea9a97',
|
||||||
|
pine = '#3e8fb0',
|
||||||
|
foam = '#9ccfd8',
|
||||||
|
iris = '#c4a7e7',
|
||||||
|
highlight = '#312f44',
|
||||||
|
highlight_inactive = '#2a283d',
|
||||||
|
highlight_overlay = '#3f3c53',
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
return palette
|
||||||
259
lua/rose-pine/theme.lua
Normal file
259
lua/rose-pine/theme.lua
Normal file
|
|
@ -0,0 +1,259 @@
|
||||||
|
local p = require('rose-pine.palette')
|
||||||
|
|
||||||
|
local theme = {}
|
||||||
|
|
||||||
|
theme.loadSyntax = function()
|
||||||
|
local syntax = {
|
||||||
|
Boolean = { fg = p.gold },
|
||||||
|
Character = { fg = p.gold },
|
||||||
|
Comment = { fg = p.subtle, style = 'italic' },
|
||||||
|
Conditional = { fg = p.pine },
|
||||||
|
Constant = { fg = p.gold },
|
||||||
|
Debug = { fg = p.rose },
|
||||||
|
Define = { fg = p.iris },
|
||||||
|
Delimiter = { fg = p.rose },
|
||||||
|
Error = { fg = p.love },
|
||||||
|
Exception = { fg = p.pine },
|
||||||
|
Float = { fg = p.gold },
|
||||||
|
Function = { fg = p.rose },
|
||||||
|
Identifier = { fg = p.rose },
|
||||||
|
-- Ignore = { fg = '' },
|
||||||
|
Include = { fg = p.iris },
|
||||||
|
Keyword = { fg = p.pine },
|
||||||
|
Label = { fg = p.pine },
|
||||||
|
Macro = { fg = p.iris },
|
||||||
|
Number = { fg = p.gold },
|
||||||
|
Operator = { fg = p.pine },
|
||||||
|
PreCondit = { fg = p.iris },
|
||||||
|
PreProc = { fg = p.iris },
|
||||||
|
Repeat = { fg = p.pine },
|
||||||
|
Special = { fg = p.rose },
|
||||||
|
SpecialChar = { fg = p.rose },
|
||||||
|
SpecialComment = { fg = p.iris },
|
||||||
|
Statement = { fg = p.pine },
|
||||||
|
StorageClass = { fg = p.foam },
|
||||||
|
String = { fg = p.gold },
|
||||||
|
Structure = { fg = p.foam },
|
||||||
|
Tag = { fg = p.rose },
|
||||||
|
Todo = { fg = p.iris },
|
||||||
|
Type = { fg = p.foam },
|
||||||
|
Typedef = { fg = p.foam },
|
||||||
|
Underlined = { fg = p.foam, style = 'underline' },
|
||||||
|
|
||||||
|
-- htmlH1 = { fg = '' },
|
||||||
|
-- htmlH2 = { fg = '' },
|
||||||
|
-- htmlH3 = { fg = '' },
|
||||||
|
-- htmlH4 = { fg = '' },
|
||||||
|
-- htmlH5 = { fg = '' },
|
||||||
|
-- htmlLink = { fg = '' },
|
||||||
|
-- markdownH1 = { fg = '' },
|
||||||
|
-- markdownH1Delimeter = { fg = '' },
|
||||||
|
-- markdownH2 = { fg = '' },
|
||||||
|
-- markdownH2Delimeter = { fg = '' },
|
||||||
|
-- markdownH3 = { fg = '' },
|
||||||
|
-- markdownH3Delimeter = { fg = '' },
|
||||||
|
}
|
||||||
|
|
||||||
|
return syntax
|
||||||
|
end
|
||||||
|
|
||||||
|
theme.loadEditor = function()
|
||||||
|
local editor = {
|
||||||
|
-- ColorColumn = {},
|
||||||
|
-- Conceal = {},
|
||||||
|
-- Cursor = {},
|
||||||
|
-- CursorColumn = {},
|
||||||
|
-- CursorIM = {},
|
||||||
|
CursorLine = { bg = p.highlight_inactive },
|
||||||
|
CursorLineNr = { fg = p.text },
|
||||||
|
DiffAdd = { fg = '', bg = '' },
|
||||||
|
DiffChange = { fg = '', bg = '' },
|
||||||
|
DiffDelete = { fg = '', bg = '' },
|
||||||
|
DiffText = { fg = '', bg = '' },
|
||||||
|
Directory = { fg = p.foam },
|
||||||
|
-- EndOfBuffer = {},
|
||||||
|
ErrorMsg = { fg = p.love, style = 'bold' },
|
||||||
|
-- FoldColumn = {},
|
||||||
|
-- Folded = {},
|
||||||
|
IncSearch = { bg = p.highlight },
|
||||||
|
LineNr = { fg = p.inactive },
|
||||||
|
MatchParen = { fg = p.text, bg = p.overlay },
|
||||||
|
-- ModeMsg = {},
|
||||||
|
MoreMsg = { fg = p.iris },
|
||||||
|
NonText = { fg = p.inactive },
|
||||||
|
Normal = { fg = p.text },
|
||||||
|
-- NormalFloat = {},
|
||||||
|
Pmenu = { fg = p.subtle, bg = p.surface },
|
||||||
|
PmenuSbar = { bg = p.overlay },
|
||||||
|
PmenuSel = { fg = p.text, bg = p.overlay },
|
||||||
|
PmenuThumb = { bg = p.inactive },
|
||||||
|
Question = { fg = p.gold },
|
||||||
|
-- QuickFixLine = {},
|
||||||
|
Search = { fg = p.iris, bg = p.highlight_overlay },
|
||||||
|
SpecialKey = { fg = p.foam },
|
||||||
|
-- SpellBad = {},
|
||||||
|
-- SpellCap = {},
|
||||||
|
-- SpellLocal = {},
|
||||||
|
-- SpellRare = {},
|
||||||
|
SignColumn = {},
|
||||||
|
-- StatusLine = {},
|
||||||
|
-- StatusLineNC = {},
|
||||||
|
-- StatusLineTerm = {},
|
||||||
|
-- StatusLineTermNC = {},
|
||||||
|
-- TabLine = {},
|
||||||
|
-- TabLineFill = {},
|
||||||
|
-- TabLineSel = {},
|
||||||
|
Title = { fg = p.rose },
|
||||||
|
VertSplit = { fg = p.overlay },
|
||||||
|
Visual = { bg = p.highlight },
|
||||||
|
-- VisualNOS = {},
|
||||||
|
WarningMsg = { fg = p.gold },
|
||||||
|
-- Whitespace = {},
|
||||||
|
-- WildMenu = {},
|
||||||
|
}
|
||||||
|
|
||||||
|
if vim.g.rose_pine_disable_background == true then
|
||||||
|
editor.Normal = { fg = p.text, bg = p.none }
|
||||||
|
editor.SignColumn = { fg = p.text, bg = p.none }
|
||||||
|
else
|
||||||
|
editor.Normal = { fg = p.text, bg = p.base }
|
||||||
|
editor.SignColumn = { fg = p.text, bg = p.base }
|
||||||
|
end
|
||||||
|
|
||||||
|
return editor
|
||||||
|
end
|
||||||
|
|
||||||
|
theme.loadTerminal = function()
|
||||||
|
-- black
|
||||||
|
vim.g.terminal_color_0 = p.overlay
|
||||||
|
vim.g.terminal_color_8 = p.subtle
|
||||||
|
-- red
|
||||||
|
vim.g.terminal_color_4 = p.love
|
||||||
|
vim.g.terminal_color_12 = p.love
|
||||||
|
-- green
|
||||||
|
vim.g.terminal_color_2 = p.pine
|
||||||
|
vim.g.terminal_color_10 = p.pine
|
||||||
|
-- yellow
|
||||||
|
vim.g.terminal_color_6 = p.gold
|
||||||
|
vim.g.terminal_color_14 = p.gold
|
||||||
|
-- blue
|
||||||
|
vim.g.terminal_color_1 = p.foam
|
||||||
|
vim.g.terminal_color_9 = p.foam
|
||||||
|
-- magenta
|
||||||
|
vim.g.terminal_color_5 = p.iris
|
||||||
|
vim.g.terminal_color_13 = p.iris
|
||||||
|
-- cyan
|
||||||
|
vim.g.terminal_color_3 = p.rose
|
||||||
|
vim.g.terminal_color_11 = p.rose
|
||||||
|
-- white
|
||||||
|
vim.g.terminal_color_7 = p.text
|
||||||
|
vim.g.terminal_color_15 = p.text
|
||||||
|
end
|
||||||
|
|
||||||
|
theme.loadTreesitter = function()
|
||||||
|
local treesitter = {
|
||||||
|
-- TSAnnotation = {},
|
||||||
|
-- TSAttribute = {},
|
||||||
|
-- TSBoolean = {},
|
||||||
|
-- TSCharacter = {},
|
||||||
|
TSComment = { fg = p.subtle },
|
||||||
|
-- TSConditional = {},
|
||||||
|
TSConstBuiltin = { fg = p.love },
|
||||||
|
-- TSConstMacro = {},
|
||||||
|
-- TSConstant = {},
|
||||||
|
TSConstructor = { fg = p.text },
|
||||||
|
-- TSEmphasis = {},
|
||||||
|
-- TSError = {},
|
||||||
|
-- TSException = {},
|
||||||
|
-- TSField = {},
|
||||||
|
-- TSFloat = {},
|
||||||
|
TSFuncBuiltin = { fg = p.love },
|
||||||
|
-- TSFuncMacro = {},
|
||||||
|
-- TSFunction = {},
|
||||||
|
-- TSInclude = {},
|
||||||
|
-- TSKeyword = {},
|
||||||
|
-- TSKeywordFunction = {},
|
||||||
|
-- TSLabel = {},
|
||||||
|
-- TSLiteral = {},
|
||||||
|
-- TSMethod = {},
|
||||||
|
-- TSNamespace = {},
|
||||||
|
-- TSNone = {},
|
||||||
|
-- TSNumber = {},
|
||||||
|
-- TSOperator = {},
|
||||||
|
-- TSParameter = {},
|
||||||
|
-- TSParameterReference = {},
|
||||||
|
-- TSProperty = {},
|
||||||
|
TSPunctBracket = { fg = p.subtle },
|
||||||
|
TSPunctDelimiter = { fg = p.subtle },
|
||||||
|
TSPunctSpecial = { fg = p.subtle },
|
||||||
|
-- TSRepeat = {},
|
||||||
|
-- TSStrike = {},
|
||||||
|
-- TSString = {},
|
||||||
|
TSStringEscape = { fg = p.pine },
|
||||||
|
-- TSStringRegex = {},
|
||||||
|
-- TSSymbol = {},
|
||||||
|
TSTag = { fg = p.foam },
|
||||||
|
TSTagDelimiter = { fg = p.subtle },
|
||||||
|
-- TSText = {},
|
||||||
|
-- TSTitle = {},
|
||||||
|
-- TSType = {},
|
||||||
|
-- TSTypeBuiltin = {},
|
||||||
|
-- TSURI = {},
|
||||||
|
-- TSUnderline = {},
|
||||||
|
-- TSVariable = {},
|
||||||
|
TSVariableBuiltin = { fg = p.love },
|
||||||
|
}
|
||||||
|
|
||||||
|
return treesitter
|
||||||
|
end
|
||||||
|
|
||||||
|
theme.loadLsp = function()
|
||||||
|
local lsp = {
|
||||||
|
LspDiagnosticsDefaultError = { fg = p.love },
|
||||||
|
LspDiagnosticsDefaultHint = { fg = p.iris },
|
||||||
|
LspDiagnosticsDefaultInformation = { fg = p.foam },
|
||||||
|
LspDiagnosticsDefaultWarning = { fg = p.gold },
|
||||||
|
LspDiagnosticsFloatingError = { fg = p.love },
|
||||||
|
LspDiagnosticsFloatingHint = { fg = p.iris },
|
||||||
|
LspDiagnosticsFloatingInformation = { fg = p.foam },
|
||||||
|
LspDiagnosticsFloatingWarning = { fg = p.gold },
|
||||||
|
LspDiagnosticsSignError = { fg = p.love },
|
||||||
|
LspDiagnosticsSignHint = { fg = p.iris },
|
||||||
|
LspDiagnosticsSignInformation = { fg = p.foam },
|
||||||
|
LspDiagnosticsSignWarning = { fg = p.gold },
|
||||||
|
LspDiagnosticsUnderlineError = { style = 'undercurl', sp = p.love },
|
||||||
|
LspDiagnosticsUnderlineHint = { style = 'undercurl', sp = p.iris },
|
||||||
|
LspDiagnosticsUnderlineInformation = { style = 'undercurl', sp = p.foam },
|
||||||
|
LspDiagnosticsUnderlineWarning = { style = 'undercurl', sp = p.gold },
|
||||||
|
LspDiagnosticsVirtualTextError = { fg = p.love },
|
||||||
|
LspDiagnosticsVirtualTextHint = { fg = p.iris },
|
||||||
|
LspDiagnosticsVirtualTextInformation = { fg = p.foam },
|
||||||
|
LspDiagnosticsVirtualTextWarning = { fg = p.gold },
|
||||||
|
LspReferenceRead = { fg = p.rose, bg = p.highlight },
|
||||||
|
LspReferenceText = { fg = p.rose, bg = p.highlight },
|
||||||
|
LspReferenceWrite = { fg = p.rose, bg = p.highlight },
|
||||||
|
}
|
||||||
|
|
||||||
|
return lsp
|
||||||
|
end
|
||||||
|
|
||||||
|
theme.loadPlugins = function()
|
||||||
|
local plugins = {
|
||||||
|
-- barbar.nvim
|
||||||
|
-- https://github.com/romgrk/barbar.nvim
|
||||||
|
BufferTabpageFill = { bg = p.none },
|
||||||
|
BufferCurrent = { fg = p.text, bg = p.overlay },
|
||||||
|
BufferCurrentMod = { fg = p.foam, bg = p.overlay },
|
||||||
|
BufferCurrentSign = { fg = p.subtle, bg = p.overlay },
|
||||||
|
BufferInactive = { fg = p.subtle },
|
||||||
|
BufferInactiveMod = { fg = p.foam },
|
||||||
|
BufferInactiveSign = { fg = p.subtle },
|
||||||
|
BufferVisible = { fg = p.subtle },
|
||||||
|
BufferVisibleMod = { fg = p.foam },
|
||||||
|
BufferVisibleSign = { fg = p.subtle },
|
||||||
|
}
|
||||||
|
|
||||||
|
return plugins
|
||||||
|
end
|
||||||
|
|
||||||
|
return theme
|
||||||
69
lua/rose-pine/util.lua
Normal file
69
lua/rose-pine/util.lua
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
local util = {}
|
||||||
|
local theme = require('rose-pine.theme')
|
||||||
|
|
||||||
|
util.highlight = function(group, color)
|
||||||
|
local style = color.style and 'gui=' .. color.style or 'gui=NONE'
|
||||||
|
local fg = color.fg and 'guifg=' .. color.fg or 'guifg=NONE'
|
||||||
|
local bg = color.bg and 'guibg=' .. color.bg or 'guibg=NONE'
|
||||||
|
local sp = color.sp and 'guisp=' .. color.sp or ''
|
||||||
|
|
||||||
|
local hl = 'highlight ' .. group .. ' ' .. style .. ' ' .. fg .. ' ' .. bg .. ' ' .. sp
|
||||||
|
|
||||||
|
vim.cmd(hl)
|
||||||
|
if color.link then
|
||||||
|
vim.cmd('highlight! link ' .. group .. ' ' .. color.link)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function util.load()
|
||||||
|
vim.cmd('hi clear')
|
||||||
|
if vim.fn.exists('syntax_on') then
|
||||||
|
vim.cmd('syntax reset')
|
||||||
|
end
|
||||||
|
if vim.g.rose_pine_variant == 'dawn' then
|
||||||
|
vim.o.background = 'light'
|
||||||
|
else
|
||||||
|
vim.o.background = 'dark'
|
||||||
|
end
|
||||||
|
vim.o.termguicolors = true
|
||||||
|
vim.g.colors_name = 'rose-pine'
|
||||||
|
|
||||||
|
local async
|
||||||
|
async = vim.loop.new_async(vim.schedule_wrap(function()
|
||||||
|
theme.loadTerminal()
|
||||||
|
local plugins = theme.loadPlugins()
|
||||||
|
local treesitter = theme.loadTreesitter()
|
||||||
|
local lsp = theme.loadLsp()
|
||||||
|
|
||||||
|
for group, colors in pairs(plugins) do
|
||||||
|
util.highlight(group, colors)
|
||||||
|
end
|
||||||
|
|
||||||
|
for group, colors in pairs(treesitter) do
|
||||||
|
util.highlight(group, colors)
|
||||||
|
end
|
||||||
|
|
||||||
|
for group, colors in pairs(lsp) do
|
||||||
|
util.highlight(group, colors)
|
||||||
|
end
|
||||||
|
|
||||||
|
async:close()
|
||||||
|
end))
|
||||||
|
|
||||||
|
-- load priority groups first
|
||||||
|
local editor = theme.loadEditor()
|
||||||
|
local syntax = theme.loadSyntax()
|
||||||
|
|
||||||
|
for group, colors in pairs(editor) do
|
||||||
|
util.highlight(group, colors)
|
||||||
|
end
|
||||||
|
|
||||||
|
for group, colors in pairs(syntax) do
|
||||||
|
util.highlight(group, colors)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- load enhancements (eg. lsp, treesitter, plugins)
|
||||||
|
async:send()
|
||||||
|
end
|
||||||
|
|
||||||
|
return util
|
||||||
78
readme.md
Normal file
78
readme.md
Normal file
|
|
@ -0,0 +1,78 @@
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://github.com/rose-pine/rose-pine-theme/raw/main/assets/icon.png" width="80" />
|
||||||
|
<h2 align="center">Rosé Pine for Neovim</h2>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">All natural pine, faux fur and a bit of soho vibes for the classy minimalist</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/rose-pine/rose-pine-theme">
|
||||||
|
<img src="https://img.shields.io/badge/community-rosé%20pine-26233a?labelColor=191724&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUwIiBoZWlnaHQ9IjIzNyIgdmlld0JveD0iMCAwIDI1MCAyMzciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xNjEuMjI3IDE2MS4yNTFDMTMyLjE1NCAxNjkuMDQxIDExNC45MDEgMTk4LjkyNCAxMjIuNjkxIDIyNy45OTdDMTIzLjkyNSAyMzIuNjAzIDEyOC42NTkgMjM1LjMzNiAxMzMuMjY0IDIzNC4xMDJMMTg1LjkwNyAyMTkuOTk2QzIxOS41ODUgMjEwLjk3MiAyMzkuNTcgMTc2LjM1NCAyMzAuNTQ2IDE0Mi42NzdMMTYxLjIyNyAxNjEuMjUxWiIgZmlsbD0iIzI0NjI3QiIvPgo8cGF0aCBkPSJNODguMTgzNiAxNTkuOTg4QzExNy4yNTcgMTY3Ljc3OCAxMzQuNTEgMTk3LjY2MiAxMjYuNzIgMjI2LjczNUMxMjUuNDg2IDIzMS4zNCAxMjAuNzUyIDIzNC4wNzMgMTE2LjE0NyAyMzIuODM5TDYzLjUwNDEgMjE4LjczM0MyOS44MjY0IDIwOS43MSA5Ljg0MDk0IDE3NS4wOTIgMTguODY0OSAxNDEuNDE0TDg4LjE4MzYgMTU5Ljk4OFoiIGZpbGw9IiMyNDYyN0IiLz4KPHBhdGggZD0iTTE4Ni44NjcgMTcyLjk4QzE1Mi4wMDIgMTcyLjk4IDEyMy43MzcgMjAxLjI0NSAxMjMuNzM3IDIzNi4xMTFIMTg2Ljg3QzIyMS43MzYgMjM2LjExMSAyNTAgMjA3Ljg0NiAyNTAgMTcyLjk4TDE4Ni44NjcgMTcyLjk4WiIgZmlsbD0iIzMxNzQ4RiIvPgo8cGF0aCBkPSJNNjMuMTMyNyAxNzIuOThDOTcuOTk4NCAxNzIuOTggMTI2LjI2MyAyMDEuMjQ1IDEyNi4yNjMgMjM2LjExMUg2My4xM0MyOC4yNjQyIDIzNi4xMTEgLTEuNTI0MDNlLTA2IDIwNy44NDYgMCAxNzIuOThMNjMuMTMyNyAxNzIuOThaIiBmaWxsPSIjMzE3NDhGIi8+CjxwYXRoIGQ9Ik0xNzEuNzE3IDc1LjEyNjNDMTcxLjcxNyAxMDEuMjc2IDE1MC41MTggMTIyLjQ3NSAxMjQuMzY5IDEyMi40NzVDOTguMjE4OCAxMjIuNDc1IDc3LjAyMDIgMTAxLjI3NiA3Ny4wMjAyIDc1LjEyNjNDNzcuMDIwMiA0OC45NzY0IDk4LjIxODggMjcuNzc3OCAxMjQuMzY5IDI3Ljc3NzhDMTUwLjUxOCAyNy43Nzc4IDE3MS43MTcgNDguOTc2NCAxNzEuNzE3IDc1LjEyNjNaIiBmaWxsPSIjRUJCQ0JBIi8+CjxwYXRoIGQ9Ik0xNDQuMjE3IDg2LjIzNzlDMTYxLjY0OSA1Ni4wNDMyIDE1MS4zMDMgMTcuNDMyOSAxMjEuMTA4IDBMMTA2LjA2IDI2LjA2NDRDODguNjI3IDU2LjI1OSA5OC45NzM2IDk0Ljg2OTQgMTI5LjE2OCAxMTIuMzAyTDE0NC4yMTcgODYuMjM3OVoiIGZpbGw9IiNFQkJDQkEiLz4KPHBhdGggZD0iTTEyNS4yOTkgNjAuOTc4OUMxMTYuMjc1IDI3LjMwMTIgODEuNjU3NSA3LjMxNTY3IDQ3Ljk3OTcgMTYuMzM5Nkw2NC4zMTk3IDc3LjMyMTFDNzMuMzQzNiAxMTAuOTk5IDEwNy45NjEgMTMwLjk4NCAxNDEuNjM5IDEyMS45NkwxMjUuMjk5IDYwLjk3ODlaIiBmaWxsPSIjRUJCQ0JBIi8+CjxwYXRoIGQ9Ik0xMjQuOTI2IDYwLjk3ODlDMTMzLjk1IDI3LjMwMTIgMTY4LjU2NyA3LjMxNTY3IDIwMi4yNDUgMTYuMzM5NkwxODUuOTA1IDc3LjMyMTFDMTc2Ljg4MSAxMTAuOTk5IDE0Mi4yNjMgMTMwLjk4NCAxMDguNTg2IDEyMS45NkwxMjQuOTI2IDYwLjk3ODlaIiBmaWxsPSIjRUJCQ0JBIi8+Cjwvc3ZnPgo=&style=for-the-badge" />
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
1. Install via your preferred package manager
|
||||||
|
|
||||||
|
```lua
|
||||||
|
-- Packer
|
||||||
|
use('rose-pine/nvim')
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Require or set `rose-pine` colorscheme
|
||||||
|
|
||||||
|
```lua
|
||||||
|
-- Lua
|
||||||
|
require('rose-pine').set()
|
||||||
|
```
|
||||||
|
|
||||||
|
```vim
|
||||||
|
" Vimscript
|
||||||
|
colorscheme rose-pine
|
||||||
|
```
|
||||||
|
|
||||||
|
## Options
|
||||||
|
|
||||||
|
```lua
|
||||||
|
-- Can be 'base', 'moon', 'dawn'
|
||||||
|
vim.g.rose_pine_variant = 'base'
|
||||||
|
|
||||||
|
-- Use terminal background
|
||||||
|
vim.g.rose_pine_remove_background = false
|
||||||
|
```
|
||||||
|
|
||||||
|
## Functions
|
||||||
|
|
||||||
|
```lua
|
||||||
|
-- Toggle between the three variants
|
||||||
|
require('rose-pine.functions').toggle_variant()
|
||||||
|
|
||||||
|
-- Toggle between base and dawn
|
||||||
|
require('rose-pine.functions').toggle_variant({'base', 'dawn'})
|
||||||
|
|
||||||
|
-- Switch to specified variant
|
||||||
|
require('rose-pine.functions').select_variant('moon')
|
||||||
|
```
|
||||||
|
|
||||||
|
## Gallery
|
||||||
|
|
||||||
|
**Rosé Pine**
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**Rosé Pine Moon**
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**Rosé Pine Dawn**
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Thanks to
|
||||||
|
|
||||||
|
- [mvllow](https://github.com/mvllow)
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue