-- CREDITS: pwntester/nautilus.nvim local lush = require("lush") local hsl = lush.hsluv --[[ base00 - Default Background base01 - Lighter Background (Used for status bars) base02 - Selection Background base03 - Comments, Invisibles, Line Highlighting base04 - Dark Foreground (Used for status bars) base05 - Default Foreground, Caret, Delimiters, Operators base06 - Light Foreground (Not often used) base07 - Light Background (Not often used) base08 - Variables, XML Tags, Markup Link Text, Markup Lists, Diff Deleted base09 - Integers, Boolean, Constants, XML Attributes, Markup Link Url base0A - Classes, Markup Bold, Search Text Background base0B - Strings, Inherited Class, Markup Code, Diff Inserted base0C - Support, Regular Expressions, Escape Characters, Markup Quotes base0D - Functions, Methods, Attribute IDs, Headings base0E - Keywords, Storage, Selector, Markup Italic, Diff Changed base0F - Deprecated, Opening/Closing Embedded Language Tags, e.g. ]] -- local base00 = hsl("#2b221f") local base01 = hsl("#412c26") local base02 = hsl("#5c362c") local base03 = hsl("#a45b43") local base04 = hsl("#e1bcb2") local base05 = hsl("#f5ecea") local base06 = hsl("#fefefe") local base07 = hsl("#eb8a65") local base08 = hsl("#d03e68") local base09 = hsl("#df937a") local base0A = hsl("#afa644") local base0B = hsl("#85b26e") local base0C = hsl("#eb914a") local base0D = hsl("#c67f62") local base0E = hsl("#8b7ab9") local base0F = hsl("#7f3F83") --[[ Define additional colors if defined in the theme. Fallback to base00 - base07 if not defined. ]] vim.g.terminal_color_0 = base00.hex vim.g.terminal_color_1 = base08.hex vim.g.terminal_color_2 = base0B.hex vim.g.terminal_color_3 = base0A.hex vim.g.terminal_color_4 = base0D.hex vim.g.terminal_color_5 = base0E.hex vim.g.terminal_color_6 = base0C.hex vim.g.terminal_color_7 = base05.hex vim.g.terminal_color_8 = base03.hex vim.g.terminal_color_9 = base08.hex vim.g.terminal_color_10 = base0B.hex vim.g.terminal_color_11 = base0A.hex vim.g.terminal_color_12 = base0D.hex vim.g.terminal_color_13 = base0E.hex vim.g.terminal_color_14 = base0C.hex vim.g.terminal_color_15 = base07.hex vim.g.terminal_color_background = base00.hex vim.g.terminal_color_foreground = base0E.hex return lush(function() return { Normal({ fg = base05, bg = base00 }), NormalFloat({ fg = Normal.fg.saturate(15).lighten(5), bg = Normal.bg.saturate(15).lighten(5) }), Bold({ gui = "bold" }), Debug({ fg = base08 }), Directory({ fg = base0D }), Error({ fg = base01, bg = base08 }), ErrorMsg({ fg = base08 }), Exception({ fg = base08 }), FoldColumn({ fg = base03 }), Folded({ fg = base03, bg = base01 }), Italic({ gui = "italic" }), Macro({ fg = base08 }), ModeMsg({ fg = base0B }), MoreMsg({ fg = base0B }), Question({ fg = base0D }), Search({ fg = base00, bg = base04 }), IncSearch({ fg = base00, bg = base09 }), Substitute({ fg = base01, bg = base0A }), SpecialKey({ fg = base03 }), TooLong({ fg = base08 }), Underlined({ fg = base08 }), WarningMsg({ fg = base08 }), WildMenu({ fg = base08, bg = base0A }), Title({ fg = base0D }), Conceal({ fg = base0D }), Cursor({ fg = base00, bg = base05 }), NonText({ fg = base03 }), LineNr({ fg = base02.lighten(25), bg = base00 }), LineNrNC({ fg = base02.lighten(25), bg = base01 }), SignColumn({ fg = base01.lighten(40) }), StatusLine({ fg = base02, bg = base01.darken(60) }), StatusLineNC({ fg = base02, bg = base01.darken(30) }), VertSplit({ fg = base02, bg = base00 }), ColorColumn({ fg = base01.lighten(25), bg = base01.darken(25) }), CursorLine({ bg = base01.saturate(-5).darken(15) }), CursorColumn({ CursorLine }), CursorLineNr({ fg = base0A, CursorColumn }), Visual({ CursorColumn, fg = base03.lighten(15) }), VisualNOS({ fg = base08 }), QuickFixLine({ bg = base00 }), QFFileName({ fg = base0A }), QFLineNr({ fg = base04 }), PMenu({ fg = base05, bg = base01 }), PMenuSel({ fg = base01, bg = base05 }), TabLineSel({ fg = base00, bg = base0A }), TabLine({ fg = base03, bg = base00.darken(15) }), TabLineFill({ fg = base03, bg = base00.darken(25) }), EndOfBuffer({ fg = base01.lighten(20), bg = base01.darken(20) }), -- Standard syntax highlighting Boolean({ fg = base09 }), Character({ fg = base08 }), Comment({ fg = base03, gui = "italic" }), Conditional({ fg = base0E }), Constant({ fg = base09 }), Define({ fg = base0E }), Delimiter({ fg = base0F.lighten(10) }), Float({ fg = base09 }), Function({ fg = base0D }), Identifier({ fg = base0A }), Include({ fg = base0D }), Keyword({ fg = base0E }), Label({ fg = base0A }), Number({ fg = base03 }), Operator({ fg = base03 }), PreProc({ fg = base0A }), Repeat({ fg = base0A }), Special({ fg = base0C }), SpecialChar({ fg = base0F.lighten(15).saturate(10) }), Statement({ fg = base08 }), StorageClass({ fg = base0A }), String({ fg = base0B }), Structure({ fg = base0E }), Tag({ fg = base0A }), Todo({ fg = base0A, bg = base01 }), Type({ fg = base0A }), Typedef({ fg = base0A }), --- -- Extra definitions --- -- Help HelpDoc({ fg = base05, bg = base0D, gui = "bold,italic" }), HelpIgnore({ fg = base0B, gui = "bold,italic" }), -- C highlighting cOperator({ fg = base0C }), cPreCondit({ fg = base0E }), -- C# highlighting csClass({ fg = base0A }), csAttribute({ fg = base0A }), csModifier({ fg = base0E }), csType({ fg = base08 }), csUnspecifiedStatement({ fg = base0D }), csContextualStatement({ fg = base0E }), csNewDecleration({ fg = base08 }), -- CSS highlighting cssBraces({ fg = base05 }), cssClassName({ fg = base0E }), cssColor({ fg = base0C }), -- Diff highlighting DiffAdd({ fg = base0B, bg = base0B.darken(80) }), DiffAdded({ fg = base0B, bg = base0B.darken(80) }), DiffNewFile({ fg = base0B, bg = base0B.darken(80) }), DiffDelete({ fg = base08, bg = base08.darken(80) }), DiffRemoved({ fg = base08, bg = base08.darken(80) }), DiffChange({ fg = base03, bg = base03.darken(60) }), DiffFile({ fg = base03, bg = base03.darken(60) }), DiffLine({ fg = base03, bg = base03.darken(60) }), DiffText({ fg = base03, bg = base03.darken(60) }), -- Git highlighting gitcommitOverflow({ fg = base08 }), gitcommitSummary({ fg = base0B }), gitcommitComment({ fg = base03 }), gitcommitUntracked({ fg = base03 }), gitcommitDiscarded({ fg = base03 }), gitcommitSelected({ fg = base03 }), gitcommitHeader({ fg = base0E }), gitcommitSelectedType({ fg = base0D }), gitcommitUnmergedType({ fg = base0D }), gitcommitDiscardedType({ fg = base0D }), gitcommitBranch({ fg = base09, gui = "bold" }), gitcommitUntrackedFile({ fg = base0A }), gitcommitUnmergedFile({ fg = base08, gui = "bold" }), gitcommitDiscardedFile({ fg = base08, gui = "bold" }), gitcommitSelectedFile({ fg = base0B, gui = "bold" }), -- GitGutter highlighting GitGutterAdd({ fg = base0B, bg = base01 }), GitGutterChange({ fg = base0D, bg = base01 }), GitGutterDelete({ fg = base08, bg = base01 }), GitGutterChangeDelete({ fg = base0E, bg = base01 }), -- HTML highlighting htmlBold({ fg = base0A }), htmlItalic({ fg = base0E }), htmlEndTag({ fg = base05 }), htmlTag({ fg = base05 }), -- JavaScript highlighting javaScript({ fg = base05 }), javaScriptBraces({ fg = base05 }), javaScriptNumber({ fg = base09 }), -- pangloss/vim-javascript highlighting jsOperator({ fg = base0D }), jsStatement({ fg = base0E }), jsReturn({ fg = base0E }), jsThis({ fg = base08 }), jsClassDefinition({ fg = base0A }), jsFunction({ fg = base0E }), jsFuncName({ fg = base0D }), jsFuncCall({ fg = base0D }), jsClassFuncName({ fg = base0D }), jsClassMethodType({ fg = base0E }), jsRegexpString({ fg = base0C }), jsGlobalObjects({ fg = base0A }), jsGlobalNodeObjects({ fg = base0A }), jsExceptions({ fg = base0A }), jsBuiltins({ fg = base0A }), -- Mail highlighting mailQuoted1({ fg = base0A }), mailQuoted2({ fg = base0B }), mailQuoted3({ fg = base0E }), mailQuoted4({ fg = base0C }), mailQuoted5({ fg = base0D }), mailQuoted6({ fg = base0A }), mailURL({ fg = base0D }), mailEmail({ fg = base0D }), -- Markdown highlighting markdownh1({ fg = base0D, gui = "bold" }), markdownh2({ fg = base0D, gui = "bold" }), markdownh3({ fg = base0D, gui = "bold" }), markdownh4({ fg = base0D, gui = "bold" }), markdownh5({ fg = base0D, gui = "bold" }), markdownh6({ fg = base0A, gui = "bold" }), markdownRule({ fg = markdownh2.bg, gui = "bold" }), markdownItalic({ fg = base05, gui = "italic" }), markdownBold({ fg = base05, gui = "bold" }), markdownBoldItalic({ fg = base05, gui = "bold,italic" }), markdownCodeDelimiter({ fg = base0B, gui = "bold" }), markdownCode({ fg = base07, bg = base00 }), markdownCodeBlock({ fg = base0B }), markdownFootnoteDefinition({ fg = base05, gui = "italic" }), markdownListMarker({ fg = base05, gui = "bold" }), markdownLineBreak({ fg = base08, gui = "underline" }), markdownError({ fg = base05, bg = base00 }), markdownHeadingDelimiter({ fg = base0D }), markdownUrl({ fg = base09 }), markdownFootnote({ fg = base0E, gui = "italic" }), markdownBlockquote({ fg = base0C, gui = "bold" }), markdownLinkText({ fg = base08, gui = "italic" }), -- NERDTree highlighting NERDTreeDirSlash({ fg = base0D }), NERDTreeExecFile({ fg = base05 }), -- PHP highlighting phpMemberSelector({ fg = base05 }), phpComparison({ fg = base05 }), phpParent({ fg = base05 }), phpMethodsVar({ fg = base0C }), -- Python highlighting pythonOperator({ fg = base0E }), pythonRepeat({ fg = base0E }), pythonInclude({ fg = base0E }), pythonStatement({ fg = base0E }), -- Ruby highlighting rubyAttribute({ fg = base0D }), rubyConstant({ fg = base0A }), rubyInterpolationDelimiter({ fg = base0F }), rubyRegexp({ fg = base0C }), rubySymbol({ fg = base0B }), rubyStringDelimiter({ fg = base0B }), -- SASS highlighting sassidChar({ fg = base08 }), sassClassChar({ fg = base09 }), sassInclude({ fg = base0E }), sassMixing({ fg = base0E }), sassMixinName({ fg = base0D }), -- Spelling highlighting SpellBad({ gui = "undercurl" }), --, base08) SpellLocal({ gui = "undercurl" }), --, base0C) SpellCap({ gui = "undercurl" }), --, base0D) SpellRare({ gui = "undercurl" }), --, base0E) -- Startify highlighting StartifyBracket({ fg = base03 }), StartifyFile({ fg = base07 }), StartifyFooter({ fg = base03 }), StartifyHeader({ fg = base0B }), StartifyNumber({ fg = base09 }), StartifyPath({ fg = base03 }), StartifySection({ fg = base0E }), StartifySelect({ fg = base0C }), StartifySlash({ fg = base03 }), StartifySpecial({ fg = base03 }), -- Java highlighting javaOperator({ fg = base0D }), -- Telescope highlighting TelescopeNormal({ fg = base05, bg = base01 }), TelescopeBorder({ fg = base00, bg = base01 }), TelescopePromptPrefix({ fg = base0A, bg = base01 }), TelescopeMatching({ fg = base0D, bg = base01 }), TelescopeSelection({ fg = base0A, bg = base01 }), TelescopeSelectionCaret({ fg = base0A, bg = base01 }), --LSP highlighting LspDiagnosticsDefaultError({ fg = base08 }), LspDiagnosticsDefaultWarning({ fg = base09 }), LspDiagnosticsDefaultHint({ fg = base0A }), LspDiagnosticsDefaultInformation({ fg = base0B }), -- XML highlighting xmlTagName({ fg = base0D }), xmlCdatastart({ fg = base0A }), xmlEndTag({ fg = xmlTagName.bg }), xmlCdataCdata({ fg = xmlCdatastart.bg }), -- MatchParen MatchParen({ fg = base07, bg = base08 }), -- CodeQL CodeqlAstFocus({ fg = base00, bg = base03 }), -- TreeSitter TSError({ fg = Error.bg, gui = "bold" }), TSPunctDelimiter({ fg = base05 }), TSPunctBracket({ fg = base05 }), TSConstant({ fg = Constant.fg }), TSConstBuiltin({ fg = Constant.fg }), TSConstMacro({ fg = Constant.fg }), TSString({ fg = String.fg }), TSStringRegex({ fg = base03 }), TSStringEscape({ fg = base03 }), TSCharacter({ fg = Character.fg }), TSNumber({ fg = Number.fg }), TSBoolean({ fg = Boolean.fg }), TSFloat({ fg = Number.fg }), TSFunction({ fg = Function.fg }), TSFuncBuiltin({ fg = Function.fg }), TSFuncMacro({ fg = Function.fg }), TSParameter({ fg = base0D }), TSConstructor({ fg = base0E }), TSKeywordFunction({ fg = base0E }), TSLiteral({ fg = base04, gui = "bold" }), TSVariable({ fg = base03.lighten(25) }), TSVariableBuiltin({ fg = base0E }), TSParameterReference({ fg = TSParameter.fg }), TSMethod({ fg = Function.fg }), TSConditional({ fg = Conditional.fg }), TSRepeat({ fg = Repeat.fg }), TSLabel({ fg = Label.fg }), TSOperator({ fg = Operator.fg }), TSKeyword({ fg = Keyword.fg }), TSException({ fg = Exception.fg }), TSType({ fg = Type.fg }), TSTypeBuiltin({ fg = Type.fg }), TSStructure({ fg = Structure.fg }), TSInclude({ fg = Include.fg }), TSAnnotation({ fg = base03 }), TSStrong({ fg = base05, bg = base00, gui = "bold" }), TSTitle({ fg = base0D }), -- Diff highlighting GitSignsAdd({ fg = base0B }), GitSignsDelete({ fg = base08 }), GitSignsChange({ fg = base03 }), -- Indent-Blank-Lines IndentGuide({ fg = base01, bg = base05 }), } end)