├── .github └── workflows │ └── docs.yml ├── .stylua.toml ├── LICENSE ├── README.md ├── assets ├── color_bar.png ├── colorbar.sh └── screenshot-0.png ├── build.sh ├── colors └── darkearth.lua ├── doc └── darkearth-nvim.txt ├── extras ├── base16-darkearth.sh └── darkearth.yaml ├── lush_theme └── darkearth.lua └── shipwright_build.lua /.github/workflows/docs.yml: -------------------------------------------------------------------------------- 1 | name: Generate Vimdoc 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | jobs: 9 | docs: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v3 13 | - name: panvimdoc 14 | uses: kdheepak/panvimdoc@main 15 | with: 16 | vimdoc: darkearth-nvim 17 | version: "Neovim >= 0.7.0" 18 | demojify: true 19 | treesitter: true 20 | - name: Push changes 21 | uses: stefanzweifel/git-auto-commit-action@v4 22 | with: 23 | commit_message: "auto-generate vimdoc" 24 | commit_user_name: "github-actions[bot]" 25 | commit_user_email: "github-actions[bot]@users.noreply.github.com" 26 | commit_author: "github-actions[bot] " 27 | -------------------------------------------------------------------------------- /.stylua.toml: -------------------------------------------------------------------------------- 1 | column_width = 80 2 | line_endings = "Unix" 3 | indent_type = "Spaces" 4 | indent_width = 4 5 | quote_style = "AutoPreferDouble" 6 | call_parentheses = "Always" 7 | collapse_simple_statement = "Never" 8 | 9 | [sort_requires] 10 | enabled = false 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Patrick Dewey 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

DarkEarth

2 | 3 |

4 | A dark and earthy colorscheme for Neovim. 5 |

6 | 7 |

8 | DarkEarth palette 9 |

10 | 11 |

12 | DarkEarth theme in neovim 13 |

14 | 15 | Based on [miasma.nvim](https://github.com/xero/miasma.nvim), but reimagined with earthier tones and more colorful syntax elements. 16 | 17 | Built with [lush](https://github.com/rktjmp/lush.nvim). 18 | 19 | 20 | ## Installation 21 | 22 | Lazy: 23 | ```lua 24 | { 25 | "ptdewey/darkearth-nvim", 26 | priority = 1000, 27 | }, 28 | ``` 29 | 30 | Packer: 31 | ```lua 32 | use { 33 | "ptdewey/darkearth-nvim", 34 | } 35 | ``` 36 | 37 | ## Usage 38 | 39 | ```lua 40 | vim.cmd.colorscheme("darkearth") 41 | ``` 42 | 43 | ## Build or Modify 44 | 45 | 1. Ensure [lush.nvim](https://github.com/rktjmp/lush.nvim) and [shipwright.nvim](https://github.com/rktjmp/shipwright.nvim) are installed 46 | 2. Modify [lush_theme/darkearth.lua](lush_theme/darkearth.lua) 47 | 3. Rebuild the colorscheme using `./build.sh` 48 | 49 | 50 | ## Extras 51 | 52 | I have also included a base16 colorscheme script [extras/base16-darkearth.sh](extras/base16-darkearth.sh) that can be used to set shell colors. 53 | -------------------------------------------------------------------------------- /assets/color_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptdewey/darkearth-nvim/8f1ce10f90c5655229b7432b10b09c2d090bc4d3/assets/color_bar.png -------------------------------------------------------------------------------- /assets/colorbar.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if ! command -v convert &> /dev/null 4 | then 5 | echo "ImageMagick could not be found, please install it to use this script." 6 | exit 7 | fi 8 | 9 | color00="24211E" # bg 10 | color01="AC987D" # darker tan 11 | color02="5F865F" # teal 12 | color03="77824A" # green 13 | color04="B3664D" # red 14 | color05="B36B42" # main orange 15 | color06="BB7844" # light orange 16 | color07="C9A654" # yellow 17 | color08="D7C484" # fg 18 | 19 | convert -size 18x4 xc:none \ 20 | -fill "#$color00" -draw "rectangle 0,0 1,1" \ 21 | -fill "#$color01" -draw "rectangle 2,0 3,1" \ 22 | -fill "#$color02" -draw "rectangle 4,0 5,1" \ 23 | -fill "#$color03" -draw "rectangle 6,0 7,1" \ 24 | -fill "#$color04" -draw "rectangle 8,0 9,1" \ 25 | -fill "#$color05" -draw "rectangle 10,0 11,1" \ 26 | -fill "#$color06" -draw "rectangle 12,0 13,1" \ 27 | -fill "#$color07" -draw "rectangle 14,0 15,1" \ 28 | -fill "#$color08" -draw "rectangle 16,0 17,1" \ 29 | -scale 1600% color_bar.png 30 | 31 | echo "Color bar saved as color_bar.png" 32 | -------------------------------------------------------------------------------- /assets/screenshot-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptdewey/darkearth-nvim/8f1ce10f90c5655229b7432b10b09c2d090bc4d3/assets/screenshot-0.png -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | export LUA_PATH=./lush_theme/darkearth.lua 4 | 5 | nvim --headless +Shipwright +qa 6 | 7 | echo "DarkEarth build complete" 8 | -------------------------------------------------------------------------------- /colors/darkearth.lua: -------------------------------------------------------------------------------- 1 | -- colors/colorscheme.lua 2 | 3 | local colors = { 4 | -- content here will not be touched 5 | -- PATCH_OPEN 6 | Normal = {fg = "#D7C484", bg = "#24211E"}, 7 | CmpItemKindText = {link = "Normal"}, 8 | CmpItemKindVariable = {link = "Normal"}, 9 | FzfLuaBorder = {link = "Normal"}, 10 | FzfLuaNormal = {link = "Normal"}, 11 | NvimSpacing = {link = "Normal"}, 12 | javaScript = {link = "Normal"}, 13 | lessVariableValue = {link = "Normal"}, 14 | ["@boolean"] = {link = "Boolean"}, 15 | ColorColumn = {bg = "#24211E"}, 16 | Comment = {fg = "#6E665E", italic = true}, 17 | CtrlPLinePre = {link = "Comment"}, 18 | LspCodeLens = {link = "Comment"}, 19 | NERDTreeHelp = {link = "Comment"}, 20 | helpSectionDelim = {link = "Comment"}, 21 | ["@comment"] = {link = "Comment"}, 22 | ["@html.comment"] = {link = "Comment"}, 23 | ["@lsp.type.comment"] = {link = "Comment"}, 24 | ["@text.literal"] = {link = "Comment"}, 25 | Constant = {fg = "#BB7844"}, 26 | Character = {link = "Constant"}, 27 | rubyConstant = {link = "Constant"}, 28 | vimHiAttrib = {link = "Constant"}, 29 | ["@constant"] = {link = "Constant"}, 30 | ["@lsp.type.enumMember"] = {link = "Constant"}, 31 | Cursor = {fg = "#212121", bg = "#675642"}, 32 | FzfLuaCursor = {link = "Cursor"}, 33 | CursorColumn = {bg = "#221F1C"}, 34 | CursorLine = {bg = "#221F1C"}, 35 | FzfLuaCursorLine = {link = "CursorLine"}, 36 | CursorLineNr = {fg = "#77824A", bg = "#221F1C", bold = true}, 37 | FzfLuaCursorLineNr = {link = "CursorLineNr"}, 38 | DefLineNr = {fg = "#736659", bg = "#221F1C"}, 39 | LineNrAbove = {link = "DefLineNr"}, 40 | LineNrBelow = {link = "DefLineNr"}, 41 | Delimiter = {fg = "#80744D"}, 42 | MyParentheses = {link = "Delimiter"}, 43 | NvimArrow = {link = "Delimiter"}, 44 | NvimColon = {link = "Delimiter"}, 45 | NvimComma = {link = "Delimiter"}, 46 | NvimParenthesis = {link = "Delimiter"}, 47 | javaScriptBraces = {link = "Delimiter"}, 48 | markdownLinkDelimiter = {link = "Delimiter"}, 49 | markdownURLDelimiter = {link = "Delimiter"}, 50 | vimContinue = {link = "Delimiter"}, 51 | vimSetSep = {link = "Delimiter"}, 52 | ["@punctuation"] = {link = "Delimiter"}, 53 | DelimiterLight = {fg = "#D7C484"}, 54 | ["@punctuation.bracket"] = {link = "DelimiterLight"}, 55 | DiagnosticDeprecated = {sp = "#675642", strikethrough = true}, 56 | DiagnosticError = {fg = "#B3664D"}, 57 | DiagnosticErrorFloating = {link = "DiagnosticError"}, 58 | DiagnosticFloatingError = {link = "DiagnosticError"}, 59 | DiagnosticHint = {fg = "#6E665E"}, 60 | DiagnosticFloatingHint = {link = "DiagnosticHint"}, 61 | DiagnosticHintFloating = {fg = "#77824A"}, 62 | DiagnosticInfo = {fg = "#C9A654"}, 63 | DiagnosticFloatingInfo = {link = "DiagnosticInfo"}, 64 | DiagnosticOk = {fg = "#77824A"}, 65 | DiagnosticFloatingOk = {link = "DiagnosticOk"}, 66 | DiagnosticSignOk = {link = "DiagnosticOk"}, 67 | DiagnosticVirtualTextOk = {link = "DiagnosticOk"}, 68 | DiagnosticSignError = {fg = "#B3664D", bg = "#221F1C"}, 69 | DiagnosticSignHint = {fg = "#6E665E", bg = "#221F1C"}, 70 | DiagnosticSignInfo = {fg = "#C9A654", bg = "#221F1C"}, 71 | DiagnosticSignWarn = {fg = "#BB7844", bg = "#221F1C"}, 72 | DiagnosticUnderlineError = {underline = true}, 73 | DiagnosticUnderlineHint = {underline = true}, 74 | DiagnosticUnderlineInfo = {underline = true}, 75 | DiagnosticUnderlineOk = {underline = true}, 76 | DiagnosticUnderlineWarn = {underline = true}, 77 | DiagnosticUnnecessary = {fg = "#6B6461"}, 78 | DiagnosticVirtualTextError = {fg = "#B3664D", bg = "#2A2622"}, 79 | DiagnosticVirtualTextHint = {fg = "#6E665E", bg = "#2A2622"}, 80 | DiagnosticVirtualTextInfo = {fg = "#C9A654", bg = "#2A2622"}, 81 | DiagnosticVirtualTextWarn = {fg = "#BB7844", bg = "#2A2622"}, 82 | DiagnosticVirtualTextWarning = {fg = "#D7C484"}, 83 | DiagnosticWarn = {fg = "#BB7844"}, 84 | CmpItemAbbrDeprecated = {link = "DiagnosticWarn"}, 85 | DiagnosticFloatingWarn = {link = "DiagnosticWarn"}, 86 | DiagnosticWarning = {fg = "#B36B42"}, 87 | DiagnosticFloatingWarning = {link = "DiagnosticWarning"}, 88 | DiagnosticWarningFloating = {fg = "#D7C484"}, 89 | DiffAdd = {fg = "#212121", bg = "#5F865F"}, 90 | ["@text.diff.add"] = {link = "DiffAdd"}, 91 | DiffAdded = {fg = "#5F865F", bg = "#221F1C"}, 92 | DiffChange = {fg = "#212121", bg = "#675642"}, 93 | DiffDelete = {fg = "#212121", bg = "#B36B42", bold = true}, 94 | ["@text.diff.delete"] = {link = "DiffDelete"}, 95 | DiffRemoved = {fg = "#B36B42", bg = "#221F1C"}, 96 | DiffText = {fg = "#212121", bg = "#C9A654", bold = true}, 97 | Directory = {fg = "#77824A", bg = "#221F1C"}, 98 | gitCommitFile = {link = "Directory"}, 99 | Error = {fg = "#C3C3B1", bg = "#BB7844"}, 100 | NvimInvalid = {link = "Error"}, 101 | ErrorMsg = {fg = "#B36B42", bg = "#24211E"}, 102 | NvimInvalidSpacing = {link = "ErrorMsg"}, 103 | Field = {fg = "#BB7844"}, 104 | CmpItemKindProperty = {link = "Field"}, 105 | ["@field"] = {link = "Field"}, 106 | ["@property"] = {link = "Field"}, 107 | FloatShadow = {bg = "#0F0F0F"}, 108 | FloatShadowThrough = {bg = "#141414"}, 109 | FoldColumn = {fg = "#666666", bg = "#221F1C"}, 110 | CursorLineFold = {link = "FoldColumn"}, 111 | Folded = {fg = "#B36B42", bg = "#221F1C"}, 112 | Function = {fg = "#77824A"}, 113 | CmpItemKindFunction = {link = "Function"}, 114 | CmpItemKindMethod = {link = "Function"}, 115 | ["@function"] = {link = "Function"}, 116 | ["@function.builtin"] = {link = "Function"}, 117 | ["@lsp.type.decorator"] = {link = "Function"}, 118 | ["@lsp.type.function"] = {link = "Function"}, 119 | ["@lsp.type.method"] = {link = "Function"}, 120 | ["@method"] = {link = "Function"}, 121 | GitSignsAdd = {fg = "#5F865F", bg = "#221F1C"}, 122 | GitSignsChange = {fg = "#675642", bg = "#221F1C"}, 123 | GitSignsDelete = {fg = "#B3664D", bg = "#221F1C"}, 124 | IblIndent = {fg = "#252F1E", nocombine = true}, 125 | IblScope = {fg = "#444A2B", nocombine = true}, 126 | IblWhitespace = {fg = "#252F1E", nocombine = true}, 127 | Identifier = {fg = "#D7C484"}, 128 | NvimIdentifier = {link = "Identifier"}, 129 | rubyLocalVariableOrMethod = {link = "Identifier"}, 130 | ["@lsp.type.parameter"] = {link = "Identifier"}, 131 | ["@lsp.type.property"] = {link = "Identifier"}, 132 | ["@lsp.type.variable"] = {link = "Identifier"}, 133 | ["@namespace"] = {link = "Identifier"}, 134 | ["@parameter"] = {link = "Identifier"}, 135 | ["@text.reference"] = {link = "Identifier"}, 136 | ["@variable"] = {link = "Identifier"}, 137 | Ignore = {fg = "#484441"}, 138 | Conceal = {link = "Ignore"}, 139 | IncSearch = {fg = "#212121", bg = "#BB7844"}, 140 | FzfLuaSearch = {link = "IncSearch"}, 141 | Keyword = {fg = "#5F865F"}, 142 | CmpItemKindKeyword = {link = "Keyword"}, 143 | CmpItemKindUnit = {link = "Keyword"}, 144 | PreProc = {link = "Keyword"}, 145 | ["@keyword"] = {link = "Keyword"}, 146 | LazyButton = {bg = "#24211E"}, 147 | LazyButtonActive = {fg = "#212121", bg = "#77824A"}, 148 | MasonHeaderSecondary = {link = "LazyButtonActive"}, 149 | MasonHighlightBlock = {link = "LazyButtonActive"}, 150 | MasonHighlightBlockBold = {link = "LazyButtonActive"}, 151 | LazyComment = {}, 152 | LazyCommit = {}, 153 | LazyCommitIssue = {}, 154 | LazyCommitScope = {}, 155 | LazyCommitType = {}, 156 | LazyDimmed = {}, 157 | LazyDir = {}, 158 | LazyH1 = {fg = "#77824A", bg = "#24211E"}, 159 | LazyH2 = {fg = "#77824A", bg = "#24211E"}, 160 | LazyLocal = {}, 161 | LazyNoCond = {}, 162 | LazyNormal = {bg = "#221F1C"}, 163 | LazyProgressDone = {}, 164 | LazyProgressTodo = {}, 165 | LazyProp = {}, 166 | LazyReasonCmd = {}, 167 | LazyReasonEvent = {}, 168 | LazyReasonFt = {}, 169 | LazyReasonImport = {}, 170 | LazyReasonKeys = {}, 171 | LazyReasonPlugin = {}, 172 | LazyReasonRuntime = {}, 173 | LazyReasonSource = {}, 174 | LazyReasonStart = {}, 175 | LazySpecial = {fg = "#C9A654"}, 176 | LazyTaskError = {}, 177 | LazyTaskOutput = {}, 178 | LazyUrl = {}, 179 | LazyValue = {}, 180 | LineNr = {fg = "#77824A", bg = "#221F1C"}, 181 | LspBorderBG = {fg = "#675642", bg = "#24211E"}, 182 | LspFloatWinNormal = {fg = "#D7C484", bg = "#444A2B"}, 183 | LspReferenceRead = {fg = "#5F865F", sp = "#FD9621", underline = true}, 184 | LspReferenceText = {fg = "#D7C484", bg = "#444A2B", sp = "#FD9621", underline = true}, 185 | LspReferenceWrite = {fg = "#5F865F", sp = "#FD9621", underline = true}, 186 | LspSignatureActiveParameter = {sp = "#FBEB9D", italic = true, underline = true}, 187 | MasonError = {}, 188 | MasonHeader = {fg = "#D7C484", bg = "#221F1C"}, 189 | MasonHeading = {}, 190 | MasonHighlight = {fg = "#77824A", bg = "#24211E"}, 191 | MasonMutedBlockBold = {link = "MasonHighlight"}, 192 | MasonHighlightBlockBoldSecondary = {}, 193 | MasonHighlightBlockSecondary = {}, 194 | MasonHighlightSecondary = {}, 195 | MasonMuted = {fg = "#C9A654", bg = "#221F1C"}, 196 | MasonMutedBlock = {link = "MasonMuted"}, 197 | MasonWarning = {}, 198 | MatchParen = {fg = "#D7C484", bg = "#463939"}, 199 | ModeMsg = {bold = true}, 200 | MoreMsg = {fg = "#5F865F", bold = true}, 201 | NonText = {fg = "#7A6D52"}, 202 | EndOfBuffer = {link = "NonText"}, 203 | Whitespace = {link = "NonText"}, 204 | markdownCodeDelimiter = {link = "NonText"}, 205 | markdownHeadingRule = {link = "NonText"}, 206 | Number = {fg = "#B3664D"}, 207 | Boolean = {link = "Number"}, 208 | Float = {link = "Number"}, 209 | NvimNumber = {link = "Number"}, 210 | rubyInstanceVariable = {link = "Number"}, 211 | ["@number"] = {link = "Number"}, 212 | NvimInternalError = {fg = "#221F1C", bg = "#B36B42"}, 213 | NvimFigureBrace = {link = "NvimInternalError"}, 214 | NvimInvalidSingleQuotedUnknownEscape = {link = "NvimInternalError"}, 215 | NvimSingleQuotedUnknownEscape = {link = "NvimInternalError"}, 216 | Operator = {fg = "#669977"}, 217 | ["@markup.list"] = {link = "Operator"}, 218 | Pmenu = {fg = "#D7C484", bg = "#221F1C"}, 219 | NormalFloat = {link = "Pmenu"}, 220 | PmenuExtra = {link = "Pmenu"}, 221 | PmenuKind = {link = "Pmenu"}, 222 | PmenuSbar = {bg = "#6B6461"}, 223 | FzfLuaScrollFloatEmpty = {link = "PmenuSbar"}, 224 | PmenuSel = {fg = "#212121", bg = "#77824A"}, 225 | PmenuExtraSel = {link = "PmenuSel"}, 226 | PmenuKindSel = {link = "PmenuSel"}, 227 | PmenuThumb = {fg = "#D7C484", bg = "#D7C484"}, 228 | FzfLuaScrollFloatFull = {link = "PmenuThumb"}, 229 | Define = {link = "PreProc"}, 230 | Include = {link = "PreProc"}, 231 | Macro = {link = "PreProc"}, 232 | PreCondit = {link = "PreProc"}, 233 | ["@preproc"] = {link = "PreProc"}, 234 | Question = {fg = "#5F865F", bold = true}, 235 | RedrawDebugClear = {fg = "#212121", bg = "#C9A654"}, 236 | RedrawDebugComposed = {fg = "#212121", bg = "#77824A"}, 237 | RedrawDebugNormal = {reverse = true}, 238 | RedrawDebugRecompose = {fg = "#212121", bg = "#BB7844"}, 239 | ScrollbarCursor = {fg = "#212121"}, 240 | ScrollbarCursorHandle = {fg = "#212121", bg = "#221F1C", blend = 0}, 241 | ScrollbarError = {fg = "#675642"}, 242 | ScrollbarErrorHandle = {fg = "#675642", bg = "#221F1C", blend = 0}, 243 | ScrollbarGitAdd = {fg = "#5F865F"}, 244 | ScrollbarGitAddHandle = {fg = "#5F865F", bg = "#221F1C", blend = 0}, 245 | ScrollbarGitChange = {fg = "#675642"}, 246 | ScrollbarGitChangeHandle = {fg = "#675642", bg = "#221F1C", blend = 0}, 247 | ScrollbarGitDelete = {fg = "#B36B42"}, 248 | ScrollbarGitDeleteHandle = {fg = "#B36B42", bg = "#221F1C", blend = 0}, 249 | ScrollbarHandle = {bg = "#221F1C", blend = 0}, 250 | ScrollbarHint = {fg = "#5F865F"}, 251 | ScrollbarHintHandle = {fg = "#5F865F", bg = "#221F1C", blend = 0}, 252 | ScrollbarInfo = {fg = "#5F865F"}, 253 | ScrollbarInfoHandle = {fg = "#5F865F", bg = "#221F1C", blend = 0}, 254 | ScrollbarMisc = {fg = "#BB7844"}, 255 | ScrollbarMiscHandle = {fg = "#BB7844", bg = "#221F1C", blend = 0}, 256 | ScrollbarSearch = {fg = "#C9A654"}, 257 | ScrollbarSearchHandle = {fg = "#C9A654", bg = "#221F1C", blend = 0}, 258 | ScrollbarWarn = {fg = "#B36B42"}, 259 | ScrollbarWarnHandle = {fg = "#B36B42", bg = "#221F1C", blend = 0}, 260 | Search = {fg = "#212121", bg = "#5F865F"}, 261 | CurSearch = {link = "Search"}, 262 | QuickFixLine = {link = "Search"}, 263 | Substitute = {link = "Search"}, 264 | SignColumn = {fg = "#6B6461", bg = "#221F1C"}, 265 | CursorLineSign = {link = "SignColumn"}, 266 | Special = {fg = "#BB7844"}, 267 | Debug = {link = "Special"}, 268 | SpecialChar = {link = "Special"}, 269 | SpecialComment = {link = "Special"}, 270 | Tag = {link = "Special"}, 271 | TelescopeMatching = {link = "Special"}, 272 | TelescopeResultsFileIcon = {link = "Special"}, 273 | ["@constant.builtin"] = {link = "Special"}, 274 | ["@constructor"] = {link = "Special"}, 275 | ["@markup.heading"] = {link = "Special"}, 276 | ["@marup.raw.block.markdown"] = {link = "Special"}, 277 | SpecialKey = {fg = "#D7C484"}, 278 | SpellBad = {fg = "#675642", sp = "#D7C484"}, 279 | SpellCap = {fg = "#5F865F", sp = "#D7C484"}, 280 | SpellLocal = {fg = "#BB7844", sp = "#D7C484"}, 281 | SpellRare = {fg = "#B36B42", sp = "#D7C484"}, 282 | Statement = {fg = "#5F865F", bold = true}, 283 | Conditional = {link = "Statement"}, 284 | Exception = {link = "Statement"}, 285 | Label = {link = "Statement"}, 286 | Repeat = {link = "Statement"}, 287 | helpHyperTextEntry = {link = "Statement"}, 288 | phpDefine = {link = "Statement"}, 289 | rubyDefine = {link = "Statement"}, 290 | StatusLine = {fg = "#D7C484", bg = "#24211E", bold = true}, 291 | MsgSeparator = {link = "StatusLine"}, 292 | StatusLineNC = {fg = "#736659", bg = "#24211E", bold = true}, 293 | String = {fg = "#B3854D"}, 294 | CmpItemAbbrMatch = {link = "String"}, 295 | CmpItemAbbrMatchFuzzy = {link = "String"}, 296 | CtrlPMatch = {link = "String"}, 297 | NERDTreeExecFile = {link = "String"}, 298 | NvimString = {link = "String"}, 299 | helpExample = {link = "String"}, 300 | markdownCodeBlock = {link = "String"}, 301 | phpHereDoc = {link = "String"}, 302 | ["@string"] = {link = "String"}, 303 | SyntasticErrorSign = {fg = "#B36B42"}, 304 | SyntasticWarningSign = {fg = "#675642"}, 305 | TabLine = {fg = "#6B6461", bg = "#121212"}, 306 | TabLineFill = {fg = "#C9A654", bg = "#24211E"}, 307 | TabLineSel = {fg = "#121212", bg = "#77824A", bold = true}, 308 | TabLineSelSep = {fg = "#77824A", bg = "#221F1C", bold = true}, 309 | TabLineSep = {fg = "#121212", bg = "#24211E"}, 310 | TelescopeBorder = {fg = "#675642", bg = "#221F1C"}, 311 | TelescopePreviewBorder = {link = "TelescopeBorder"}, 312 | TelescopePromptCounter = {link = "TelescopeBorder"}, 313 | TelescopeResultsBorder = {link = "TelescopeBorder"}, 314 | TelescopePromptBorder = {fg = "#B36B42", bg = "#221F1C"}, 315 | TelescopePreviewLine = {link = "TelescopeSelection"}, 316 | TelescopeSelectionCaret = {fg = "#D7C484", bg = "#77824A"}, 317 | TelescopeTitle = {fg = "#5F865F", bg = "#221F1C"}, 318 | TelescopePreviewTitle = {link = "TelescopeTitle"}, 319 | TelescopePromptPrefix = {link = "TelescopeTitle"}, 320 | TelescopePromptTitle = {link = "TelescopeTitle"}, 321 | TelescopeResultsTitle = {link = "TelescopeTitle"}, 322 | TermCursor = {reverse = true}, 323 | Title = {fg = "#B36B42", bold = true}, 324 | FloatTitle = {link = "Title"}, 325 | helpHeadline = {link = "Title"}, 326 | ["@text.title"] = {link = "Title"}, 327 | Todo = {fg = "#D7C484", bold = true}, 328 | ["@text.todo"] = {link = "Todo"}, 329 | Type = {fg = "#77824A"}, 330 | CmpItemKindInterface = {link = "Type"}, 331 | NvimNumberPrefix = {link = "Type"}, 332 | NvimOptionSigil = {link = "Type"}, 333 | StorageClass = {link = "Type"}, 334 | Structure = {link = "Type"}, 335 | Typedef = {link = "Type"}, 336 | ["@lsp.type.type"] = {link = "Type"}, 337 | ["@type"] = {link = "Type"}, 338 | Underlined = {fg = "#77824A", underline = true}, 339 | helpHyperTextJump = {link = "Underlined"}, 340 | helpURL = {link = "Underlined"}, 341 | htmlLink = {link = "Underlined"}, 342 | ["@text.underline"] = {link = "Underlined"}, 343 | ["@text.uri"] = {link = "Underlined"}, 344 | User1 = {fg = "#D7C484", bg = "#BB7844"}, 345 | User2 = {fg = "#D7C484", bg = "#666666"}, 346 | User3 = {fg = "#D7C484", bg = "#B36B42"}, 347 | User4 = {fg = "#D7C484", bg = "#24211E"}, 348 | User5 = {fg = "#D7C484", bg = "#BB7844"}, 349 | User6 = {fg = "#D7C484", bg = "#C9A654"}, 350 | User7 = {fg = "#D7C484", bg = "#77824A"}, 351 | User8 = {fg = "#D7C484", bg = "#B36B42"}, 352 | User9 = {fg = "#D7C484", bg = "#666666"}, 353 | VertSplit = {fg = "#221F1C", bg = "#24211E"}, 354 | WinSeparator = {link = "VertSplit"}, 355 | Visual = {bg = "#3B3330"}, 356 | TelescopeSelection = {link = "Visual"}, 357 | WarningMsg = {fg = "#B36B42"}, 358 | WhichKey = {fg = "#D7C484", bg = "#221F1C"}, 359 | WhichKeyBorder = {bg = "#221F1C"}, 360 | WhichKeyDesc = {fg = "#5F865F", bg = "#221F1C"}, 361 | WhichKeyFloat = {bg = "#221F1C"}, 362 | WhichKeyGroup = {bg = "#221F1C"}, 363 | WhichKeySeparator = {fg = "#C9A654", bg = "#221F1C"}, 364 | WhichKeyValue = {fg = "#C9A654"}, 365 | WildMenu = {fg = "black", bg = "#C9A654"}, 366 | WinBar = {bold = true}, 367 | WinBarNC = {link = "WinBar"}, 368 | gitCommitBranch = {fg = "#B36B42"}, 369 | gitCommitSelectedFile = {fg = "#5F865F"}, 370 | gitCommitSelectedType = {fg = "#5F865F"}, 371 | gitCommitUnmergedFile = {fg = "#675642"}, 372 | gitCommitDiscardedFile = {link = "gitCommitUnmergedFile"}, 373 | gitCommitUntrackedFile = {link = "gitCommitUnmergedFile"}, 374 | gitCommitUnmergedType = {fg = "#675642"}, 375 | gitCommitDiscardedType = {link = "gitCommitUnmergedType"}, 376 | htmlArg = {fg = "#5F865F"}, 377 | htmlBold = {bold = true}, 378 | htmlBoldItalic = {bold = true, underline = true}, 379 | htmlBoldUnderline = {bold = true, underline = true}, 380 | htmlBoldUnderlineItalic = {bold = true, underline = true}, 381 | htmlH1 = {bold = true}, 382 | htmlItalic = {underline = true}, 383 | htmlTag = {fg = "#5F865F"}, 384 | htmlEndTag = {link = "htmlTag"}, 385 | htmlTagName = {fg = "#5F865F"}, 386 | htmlUnderline = {underline = true}, 387 | htmlUnderlineItalic = {underline = true}, 388 | lCursor = {fg = "bg", bg = "fg"}, 389 | lessVariable = {fg = "#B36B42"}, 390 | markdownBold = {bold = true}, 391 | markdownItalic = {italic = true}, 392 | mustacheMarker = {fg = "#BB7844"}, 393 | mustachePartial = {fg = "#BB7844"}, 394 | mustacheSection = {bold = true}, 395 | mustacheVariable = {fg = "#C9A654"}, 396 | mustacheVariableUnescape = {fg = "#675642"}, 397 | netrwClassify = {fg = "#666666", bold = true}, 398 | netrwExe = {fg = "#675642"}, 399 | phpIdentifier = {fg = "#B36B42"}, 400 | phpVarSelector = {link = "phpIdentifier"}, 401 | phpSpecialFunction = {fg = "#BB7844"}, 402 | shDerefSimple = {fg = "#B36B42"}, 403 | shDerefVar = {link = "shDerefSimple"}, 404 | xmlTag = {fg = "#77824A"}, 405 | xmlAttrib = {link = "xmlTag"}, 406 | xmlEndTag = {link = "xmlTag"}, 407 | xmlEqual = {link = "xmlTag"}, 408 | xmlTagName = {fg = "#77824A"}, 409 | xmlString = {link = "xmlTagName"}, 410 | ["@markup.link"] = {fg = "#77824A"}, 411 | ["@punctuation.special"] = {fg = "#77824A"}, 412 | -- PATCH_CLOSE 413 | -- content here will not be touched 414 | } 415 | 416 | -- colorschemes generally want to do this 417 | vim.cmd("highlight clear") 418 | vim.cmd("set t_Co=256") 419 | vim.cmd("let g:colors_name='darkearth'") 420 | 421 | -- apply highlight groups 422 | for group, attrs in pairs(colors) do 423 | vim.api.nvim_set_hl(0, group, attrs) 424 | end 425 | -------------------------------------------------------------------------------- /doc/darkearth-nvim.txt: -------------------------------------------------------------------------------- 1 | *darkearth-nvim.txt* For Neovim >= 0.7.0 Last change: 2025 April 27 2 | 3 | ============================================================================== 4 | Table of Contents *darkearth-nvim-table-of-contents* 5 | 6 | - Installation |darkearth-nvim-installation| 7 | - Usage |darkearth-nvim-usage| 8 | - Build or Modify |darkearth-nvim-build-or-modify| 9 | - Extras |darkearth-nvim-extras| 10 | DarkEarthA dark and earthy colorscheme for Neovim.Based on miasma.nvim , but reimagined with 11 | earthier tones and more colorful syntax elements. 12 | 13 | Built with lush . 14 | 15 | 16 | INSTALLATION *darkearth-nvim-installation* 17 | 18 | Lazy: 19 | 20 | >lua 21 | { 22 | "ptdewey/darkearth-nvim", 23 | priority = 1000, 24 | }, 25 | < 26 | 27 | Packer: 28 | 29 | >lua 30 | use { 31 | "ptdewey/darkearth-nvim", 32 | } 33 | < 34 | 35 | 36 | USAGE *darkearth-nvim-usage* 37 | 38 | >lua 39 | vim.cmd.colorscheme("darkearth") 40 | < 41 | 42 | 43 | BUILD OR MODIFY *darkearth-nvim-build-or-modify* 44 | 45 | 1. Ensure lush.nvim and shipwright.nvim are installed 46 | 2. Modify lush_theme/darkearth.lua 47 | 3. Rebuild the colorscheme using `./build.sh` 48 | 49 | 50 | EXTRAS *darkearth-nvim-extras* 51 | 52 | I have also included a base16 colorscheme script extras/base16-darkearth.sh 53 | that can be used to set shell colors. 54 | 55 | Generated by panvimdoc 56 | 57 | vim:tw=78:ts=8:noet:ft=help:norl: 58 | -------------------------------------------------------------------------------- /extras/base16-darkearth.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # based off of base16-shell (https://github.com/chriskempson/base16-shell) 3 | 4 | # darkearth scheme (by ptdewey) 5 | 6 | base00="24/21/1E" # dark grey-brown (background) 7 | base01="22/1F/1C" # slightly ligher brown (alt-background) 8 | base02="44/4A/2B" # very dark green 9 | base03="6E/66/5E" # medium grey 10 | base04="73/66/59" # medium grey-brown 11 | base05="D7/C4/84" # light tan (foreground) 12 | base06="BB/78/44" # light orange 13 | base07="77/82/4A" # main green 14 | base08="B3/6B/42" # main orange 15 | base09="C9/A6/54" # main yellow 16 | base0A="5F/86/5F" # main teal 17 | base0B="AC/98/7D" # darker tan - new 18 | base0C="8A/7A/6B" # ligher grey-brown - new 19 | base0D="b3/66/4d" # main red 20 | base0E="BB/78/44" # NOTE: duplicate, can be modified 21 | base0F="67/56/42" # darker brown (similar to alt background) 22 | 23 | color00=$base00 # bg 24 | color01=$base0B # darker tan 25 | color02=$base0A # teal 26 | color03=$base07 # green 27 | color04=$base08 # main orange 28 | color05=$base06 # light orange 29 | color06=$base09 # yellow 30 | color07=$base05 # fg 31 | color08=$base0F # darker brown 32 | color09=$base0B # darker tan 33 | color10=$base0A # teal 34 | color11=$base07 # green 35 | color12=$base08 # orange 36 | color13=$base06 # light orange 37 | color14=$base09 # yellow 38 | color15=$base05 # fg 39 | 40 | if [ -n "$BASE16_SHELL_SET_BACKGROUND" ]; then 41 | if [ "$BASE16_SHELL_SET_BACKGROUND" = true ]; then 42 | color16=$base00 43 | color17=$base00 44 | else 45 | color16=$base01 46 | color17=$base01 47 | fi 48 | else 49 | color16=$base01 50 | color17=$base01 51 | fi 52 | 53 | color18=$base01 54 | color19=$base02 55 | color20=$base03 56 | color21=$base04 57 | 58 | # 16 color space 59 | if [ -n "$TMUX" ]; then 60 | put_template() { printf '\033Ptmux;\033\033]4;%d;rgb:%s\033\033\\\033\\' $@; } 61 | put_template_var() { printf '\033Ptmux;\033\033]%d;rgb:%s\033\033\\\033\\' $@; } 62 | put_template_custom() { printf '\033Ptmux;\033\033]%s%s\033\033\\\033\\' $@; } 63 | elif [ "${TERM%%[-.]*}" = "screen" ]; then 64 | put_template() { printf '\033P\033]4;%d;rgb:%s\033\\\033\\' $@; } 65 | put_template_var() { printf '\033P\033]%d;rgb:%s\033\\\033\\' $@; } 66 | put_template_custom() { printf '\033P\033]%s%s\033\\\033\\' $@; } 67 | elif [ "${TERM%%-*}" = "linux" ]; then 68 | put_template() { [ $1 -lt 16 ] && printf '\033]P%x%s' $1 $(echo $2 | sed 's/\///g'); } 69 | put_template_var() { true; } 70 | put_template_custom() { true; } 71 | else 72 | put_template() { printf '\033]4;%d;rgb:%s\033\\' $@; } 73 | put_template_var() { printf '\033]%d;rgb:%s\033\\' $@; } 74 | put_template_custom() { printf '\033]%s%s\033\\' $@; } 75 | fi 76 | 77 | put_template 0 $color00 78 | put_template 1 $color01 79 | put_template 2 $color02 80 | put_template 3 $color03 81 | put_template 4 $color04 82 | put_template 5 $color05 83 | put_template 6 $color06 84 | put_template 7 $color07 85 | put_template 8 $color08 86 | put_template 9 $color09 87 | put_template 10 $color10 88 | put_template 11 $color11 89 | put_template 12 $color12 90 | put_template 13 $color13 91 | put_template 14 $color14 92 | put_template 15 $color15 93 | 94 | put_template_var 10 $base05 95 | if [ "$BASE16_SHELL_SET_BACKGROUND" != false ]; then 96 | put_template_var 11 $base00 97 | fi 98 | put_template_custom 12 ";7" 99 | 100 | unset -f put_template 101 | unset -f put_template_var 102 | unset -f put_template_custom 103 | unset color00 104 | unset color01 105 | unset color02 106 | unset color03 107 | unset color04 108 | unset color05 109 | unset color06 110 | unset color07 111 | unset color08 112 | unset color09 113 | unset color10 114 | unset color11 115 | unset color12 116 | unset color13 117 | unset color14 118 | unset color15 119 | unset color16 120 | unset color17 121 | unset color18 122 | unset color19 123 | unset color20 124 | unset color21 125 | -------------------------------------------------------------------------------- /extras/darkearth.yaml: -------------------------------------------------------------------------------- 1 | scheme: "DarkEarth" 2 | author: "ptdewey" 3 | base00: "24211E" 4 | base01: "AC987D" 5 | base02: "5F865F" 6 | base03: "77824A" 7 | base04: "B36B42" 8 | base05: "BB7844" 9 | base06: "C9A654" 10 | base07: "D7C484" 11 | base08: "24211E" 12 | base09: "AC987D" 13 | base0A: "5F865F" 14 | base0B: "77824A" 15 | base0C: "B36B42" 16 | base0D: "BB7844" 17 | base0E: "C9A654" 18 | base0F: "D7C484" 19 | -------------------------------------------------------------------------------- /lush_theme/darkearth.lua: -------------------------------------------------------------------------------- 1 | -- call :Lushify 2 | local lush = require("lush") 3 | ---@diagnostic disable 4 | local hsl = lush.hsl 5 | local hsluv = lush.hsluv 6 | 7 | local bgc = hsl(30, 10, 13) 8 | local lnbg = hsl(30, 10, 12) 9 | local lnfg = hsl(30, 13, 40) 10 | -- local dbg = hsl(30, 10, 13) 11 | local dbg = hsl(30, 10, 15) 12 | 13 | local theme = lush(function(injected_functions) 14 | local sym = injected_functions.sym 15 | return { 16 | Normal({ fg = hsl(46, 51, 68), bg = bgc }), 17 | SpecialKey({ fg = hsl(46, 51, 68) }), 18 | TermCursor({ gui = "reverse" }), 19 | -- NonText({ fg = hsl(40, 20, 40), gui = "bold" }), 20 | NonText({ fg = hsl(40, 20, 40) }), 21 | EndOfBuffer({ NonText }), 22 | Whitespace({ NonText }), 23 | markdownHeadingRule({ NonText }), 24 | markdownCodeDelimiter({ NonText }), 25 | Directory({ fg = hsl(71, 27, 40), bg = lnbg }), 26 | gitCommitFile({ Directory }), 27 | ErrorMsg({ fg = hsl(22, 46, 48), bg = bgc }), 28 | NvimInvalidSpacing({ ErrorMsg }), 29 | IncSearch({ fg = hsl(0, 0, 13), bg = hsl(26, 47, 50) }), 30 | FzfLuaSearch({ IncSearch }), 31 | Search({ fg = hsl(0, 0, 13), bg = hsl(120, 17, 45) }), 32 | QuickFixLine({ Search }), 33 | Substitute({ Search }), 34 | MoreMsg({ fg = hsl(120, 17, 45), gui = "bold" }), 35 | ModeMsg({ gui = "bold" }), 36 | LineNr({ fg = hsl(71, 27, 40), bg = lnbg }), 37 | DefLineNr({ fg = lnfg, bg = lnbg }), 38 | LineNrAbove({ DefLineNr }), 39 | LineNrBelow({ DefLineNr }), 40 | CursorLineNr({ fg = hsl(71, 27, 40), gui = "bold", bg = lnbg }), 41 | FzfLuaCursorLineNr({ CursorLineNr }), 42 | Question({ fg = hsl(120, 17, 45), gui = "bold" }), 43 | StatusLine({ fg = hsl(46, 51, 68), gui = "bold", bg = bgc }), 44 | MsgSeparator({ StatusLine }), 45 | StatusLineNC({ fg = lnfg, gui = "bold", bg = bgc }), 46 | Ignore({ fg = hsl(20, 5, 27) }), 47 | VertSplit({ fg = lnbg, bg = bgc }), 48 | WinSeparator({ VertSplit }), 49 | Title({ fg = hsl(22, 46, 48), gui = "bold" }), 50 | FloatTitle({ Title }), 51 | sym("@text.title")({ Title }), 52 | helpHeadline({ Title }), 53 | Visual({ bg = hsl(18, 10, 21) }), 54 | -- Visual({ fg = hsl(0, 0, 13), bg = hsl(71, 27, 40) }), 55 | TelescopeSelection({ Visual }), 56 | WarningMsg({ fg = hsl(22, 46, 48) }), 57 | WildMenu({ fg = "black", bg = hsl(42, 52, 56) }), 58 | Folded({ fg = hsl(22, 46, 48), bg = lnbg }), 59 | FoldColumn({ fg = hsl(0, 0, 40), bg = lnbg }), 60 | CursorLineFold({ FoldColumn }), 61 | DiffAdded({ bg = lnbg, fg = hsl(120, 17, 45) }), 62 | DiffRemoved({ bg = lnbg, fg = hsl(22, 46, 48) }), 63 | DiffAdd({ fg = hsl(0, 0, 13), bg = hsl(120, 17, 45) }), 64 | sym("@text.diff.add")({ DiffAdd }), 65 | DiffChange({ fg = hsl(0, 0, 13), bg = hsl(33, 22, 33) }), 66 | DiffDelete({ fg = hsl(0, 0, 13), gui = "bold", bg = hsl(22, 46, 48) }), 67 | sym("@text.diff.delete")({ DiffDelete }), 68 | DiffText({ fg = hsl(0, 0, 13), gui = "bold", bg = hsl(42, 52, 56) }), 69 | SignColumn({ fg = hsl(20, 5, 40), bg = lnbg }), 70 | CursorLineSign({ SignColumn }), 71 | Conceal({ Ignore }), 72 | SpellBad({ fg = hsl(33, 22, 33), sp = hsl(46, 51, 68) }), 73 | SpellCap({ fg = hsl(120, 17, 45), sp = hsl(46, 51, 68) }), 74 | SpellRare({ fg = hsl(22, 46, 48), sp = hsl(46, 51, 68) }), 75 | SpellLocal({ fg = hsl(26, 47, 50), sp = hsl(46, 51, 68) }), 76 | Pmenu({ fg = hsl(46, 51, 68), bg = lnbg }), 77 | PmenuKind({ Pmenu }), 78 | PmenuExtra({ Pmenu }), 79 | NormalFloat({ Pmenu }), 80 | PmenuSel({ fg = hsl(0, 0, 13), bg = hsl(72, 27, 40) }), 81 | PmenuKindSel({ PmenuSel }), 82 | PmenuExtraSel({ PmenuSel }), 83 | PmenuSbar({ bg = hsl(20, 5, 40) }), 84 | FzfLuaScrollFloatEmpty({ PmenuSbar }), 85 | PmenuThumb({ fg = hsl(46, 51, 68), bg = hsl(46, 51, 68) }), 86 | FzfLuaScrollFloatFull({ PmenuThumb }), 87 | TabLine({ fg = hsl(20, 5, 40), bg = hsl(0, 0, 7) }), 88 | TabLineSep({ fg = hsl(0, 0, 7), bg = bgc }), 89 | TabLineSelSep({ fg = hsl(72, 27, 40), gui = "bold", bg = lnbg }), 90 | TabLineSel({ bg = hsl(72, 27, 40), gui = "bold", fg = hsl(0, 0, 7) }), 91 | TabLineFill({ fg = hsl(42, 52, 56), bg = bgc }), 92 | CursorColumn({ bg = lnbg }), 93 | CursorLine({ bg = lnbg }), 94 | FzfLuaCursorLine({ CursorLine }), 95 | ColorColumn({ bg = bgc }), 96 | WinBar({ gui = "bold" }), 97 | WinBarNC({ WinBar }), 98 | Cursor({ fg = hsl(0, 0, 13), bg = hsl(33, 22, 33) }), 99 | FzfLuaCursor({ Cursor }), 100 | lCursor({ fg = "bg", bg = "fg" }), 101 | NvimSpacing({ Normal }), 102 | FzfLuaNormal({ Normal }), 103 | FzfLuaBorder({ Normal }), 104 | javaScript({ Normal }), 105 | lessVariableValue({ Normal }), 106 | FloatShadow({ bg = hsl(0, 0, 6) }), 107 | FloatShadowThrough({ bg = hsl(0, 0, 8) }), 108 | RedrawDebugNormal({ gui = "reverse" }), 109 | RedrawDebugClear({ bg = hsl(42, 52, 56), fg = hsl(0, 0, 13) }), 110 | RedrawDebugComposed({ bg = hsl(72, 27, 40), fg = hsl(0, 0, 13) }), 111 | RedrawDebugRecompose({ bg = hsl(26, 47, 50), fg = hsl(0, 0, 13) }), 112 | Error({ fg = hsl(60, 13, 73), bg = hsl(26, 47, 50) }), 113 | NvimInvalid({ Error }), 114 | Todo({ fg = hsl(46, 51, 68), gui = "bold" }), 115 | sym("@text.todo")({ Todo }), 116 | String({ fg = hsl(33, 40, 50) }), 117 | sym("@string")({ String }), 118 | NvimString({ String }), 119 | phpHereDoc({ String }), 120 | markdownCodeBlock({ String }), 121 | NERDTreeExecFile({ String }), 122 | helpExample({ String }), 123 | CtrlPMatch({ String }), 124 | Constant({ fg = hsl(26, 47, 50) }), 125 | Character({ Constant }), 126 | sym("@constant")({ Constant }), 127 | sym("@lsp.type.enumMember")({ Constant }), 128 | rubyConstant({ Constant }), 129 | vimHiAttrib({ Constant }), 130 | Number({ fg = hsl(15, 40, 50) }), 131 | Float({ Number }), 132 | sym("@number")({ Number }), 133 | NvimNumber({ Number }), 134 | rubyInstanceVariable({ Number }), 135 | Boolean({ Number }), 136 | sym("@boolean")({ Boolean }), 137 | Function({ fg = hsl(72, 27, 40) }), 138 | sym("@function")({ Function }), 139 | sym("@method")({ Function }), 140 | sym("@lsp.type.decorator")({ Function }), 141 | sym("@lsp.type.function")({ Function }), 142 | sym("@lsp.type.method")({ Function }), 143 | Identifier({ fg = hsl(46, 51, 68) }), 144 | sym("@text.reference")({ Identifier }), 145 | sym("@parameter")({ Identifier }), 146 | Field({ fg = hsl(26, 47, 50) }), 147 | sym("@field")({ Field }), 148 | sym("@property")({ Field }), 149 | -- sym("@property")({ fg = "#af875e" }), -- light brown (maybe move this to string?) 150 | sym("@variable")({ Identifier }), 151 | sym("@namespace")({ Identifier }), 152 | sym("@lsp.type.parameter")({ Identifier }), 153 | sym("@lsp.type.property")({ Identifier }), 154 | sym("@lsp.type.variable")({ Identifier }), 155 | NvimIdentifier({ Identifier }), 156 | rubyLocalVariableOrMethod({ Identifier }), 157 | Statement({ fg = hsl(120, 17, 45), gui = "bold" }), 158 | Conditional({ Statement }), 159 | Repeat({ Statement }), 160 | Label({ Statement }), 161 | Exception({ Statement }), 162 | rubyDefine({ Statement }), 163 | phpDefine({ Statement }), 164 | helpHyperTextEntry({ Statement }), 165 | Keyword({ fg = hsl(120, 17, 45) }), 166 | sym("@keyword")({ Keyword }), 167 | PreProc({ Keyword }), 168 | Include({ PreProc }), 169 | Define({ PreProc }), 170 | Macro({ PreProc }), 171 | PreCondit({ PreProc }), 172 | sym("@preproc")({ PreProc }), 173 | -- Type({ fg = "#87875f" }), 174 | Type({ fg = hsl(72, 27, 40) }), 175 | StorageClass({ Type }), 176 | Structure({ Type }), 177 | Typedef({ Type }), 178 | sym("@type")({ Type }), 179 | sym("@lsp.type.type")({ Type }), 180 | NvimNumberPrefix({ Type }), 181 | NvimOptionSigil({ Type }), 182 | Special({ fg = hsl(26, 47, 50) }), 183 | Tag({ Special }), 184 | SpecialChar({ Special }), 185 | SpecialComment({ Special }), 186 | Comment({ fg = hsl(30, 8, 40), gui = "italic" }), 187 | Debug({ Special }), 188 | sym("@constant.builtin")({ Special }), 189 | sym("@function.builtin")({ Function }), 190 | sym("@constructor")({ Special }), 191 | TelescopeMatching({ Special }), 192 | TelescopeResultsFileIcon({ Special }), 193 | Delimiter({ fg = hsl(46, 25, 40) }), 194 | DelimiterLight({ fg = hsl(46, 51, 68) }), 195 | Operator({ fg = hsl(140, 20, 50) }), 196 | sym("@punctuation")({ Delimiter }), 197 | sym("@punctuation.bracket")({ DelimiterLight }), 198 | MyParentheses({ Delimiter }), 199 | NvimParenthesis({ Delimiter }), 200 | NvimColon({ Delimiter }), 201 | NvimComma({ Delimiter }), 202 | NvimArrow({ Delimiter }), 203 | javaScriptBraces({ Delimiter }), 204 | markdownLinkDelimiter({ Delimiter }), 205 | markdownURLDelimiter({ Delimiter }), 206 | vimSetSep({ Delimiter }), 207 | vimContinue({ Delimiter }), 208 | DiagnosticError({ fg = hsl(15, 40, 50) }), 209 | DiagnosticFloatingError({ DiagnosticError }), 210 | DiagnosticErrorFloating({ DiagnosticError }), 211 | DiagnosticWarn({ fg = hsl(26, 47, 50) }), 212 | -- DiagnosticWarn({ fg = hsl(30, 47, 50) }), 213 | -- DiagnosticWarn({ fg = hsl(42, 52, 56) }), 214 | DiagnosticFloatingWarn({ DiagnosticWarn }), 215 | DiagnosticInfo({ fg = hsl(42, 52, 56) }), 216 | -- DiagnosticInfo({ fg = hsl(33, 22, 33) }), 217 | DiagnosticFloatingInfo({ DiagnosticInfo }), 218 | DiagnosticHint({ fg = hsl(30, 8, 40) }), 219 | DiagnosticFloatingHint({ DiagnosticHint }), 220 | DiagnosticOk({ fg = hsl(71, 27, 40) }), 221 | DiagnosticVirtualTextOk({ DiagnosticOk }), 222 | DiagnosticFloatingOk({ DiagnosticOk }), 223 | DiagnosticSignOk({ DiagnosticOk }), 224 | DiagnosticUnderlineError({ gui = "underline" }), 225 | DiagnosticUnderlineWarn({ gui = "underline" }), 226 | DiagnosticUnderlineInfo({ gui = "underline" }), 227 | DiagnosticUnderlineHint({ gui = "underline" }), 228 | DiagnosticUnderlineOk({ gui = "underline" }), 229 | DiagnosticVirtualTextError({ DiagnosticError, bg = dbg }), 230 | DiagnosticVirtualTextWarn({ DiagnosticWarn, bg = dbg }), 231 | DiagnosticVirtualTextInfo({ DiagnosticInfo, bg = dbg }), 232 | DiagnosticVirtualTextHint({ DiagnosticHint, bg = dbg }), 233 | DiagnosticSignError({ DiagnosticError, bg = lnbg }), 234 | DiagnosticSignWarn({ DiagnosticWarn, bg = lnbg }), 235 | DiagnosticSignInfo({ DiagnosticInfo, bg = lnbg }), 236 | DiagnosticSignHint({ DiagnosticHint, bg = lnbg }), 237 | DiagnosticDeprecated({ gui = "strikethrough", sp = hsl(33, 22, 33) }), 238 | DiagnosticUnnecessary({ fg = hsl(20, 5, 40) }), 239 | sym("@text.literal")({ Comment }), 240 | sym("@comment")({ Comment }), 241 | sym("@lsp.type.comment")({ Comment }), 242 | NERDTreeHelp({ Comment }), 243 | helpSectionDelim({ Comment }), 244 | CtrlPLinePre({ Comment }), 245 | LspCodeLens({ Comment }), 246 | Underlined({ fg = hsl(72, 27, 40), gui = "underline" }), 247 | sym("@text.uri")({ Underlined }), 248 | sym("@text.underline")({ Underlined }), 249 | sym("@markup.link")({ fg = hsl(72, 27, 40) }), 250 | sym("@markup.list")({ Operator }), 251 | sym("@markup.heading")({ Special }), 252 | sym("@marup.raw.block.markdown")({ Special }), 253 | sym("@punctuation.special")({ fg = hsl(72, 27, 40) }), 254 | sym("@html.comment")({ Comment }), 255 | htmlLink({ Underlined }), 256 | helpHyperTextJump({ Underlined }), 257 | helpURL({ Underlined }), 258 | MatchParen({ fg = hsl(46, 51, 68), bg = hsl(0, 10, 25) }), 259 | NvimInternalError({ fg = lnbg, bg = hsl(22, 46, 48) }), 260 | NvimFigureBrace({ NvimInternalError }), 261 | NvimSingleQuotedUnknownEscape({ NvimInternalError }), 262 | NvimInvalidSingleQuotedUnknownEscape({ NvimInternalError }), 263 | LazyReasonRuntime({}), 264 | LazyButtonActive({ bg = hsl(72, 27, 40), fg = hsl(0, 0, 13) }), 265 | LazyDimmed({}), 266 | LazyTaskOutput({}), 267 | LazyTaskError({}), 268 | LazyCommitScope({}), 269 | LazyCommitType({}), 270 | LazyCommitIssue({}), 271 | LazyReasonFt({}), 272 | LazyProp({}), 273 | LazyCommit({}), 274 | LazyUrl({}), 275 | LazyReasonCmd({}), 276 | LazyValue({}), 277 | LazyNormal({ bg = lnbg }), 278 | LazyNoCond({}), 279 | LazyComment({}), 280 | LazyH2({ fg = hsl(72, 27, 40), bg = bgc }), 281 | LazyReasonSource({}), 282 | LazyH1({ fg = hsl(72, 27, 40), bg = bgc }), 283 | LazyReasonStart({}), 284 | LazyLocal({}), 285 | LazyReasonImport({}), 286 | LazyDir({}), 287 | LazyReasonKeys({}), 288 | LazyProgressDone({}), 289 | LazyReasonEvent({}), 290 | LazyProgressTodo({}), 291 | LazyReasonPlugin({}), 292 | LazySpecial({ fg = hsl(42, 52, 56) }), 293 | LazyButton({ bg = bgc }), 294 | MasonHeader({ bg = lnbg, fg = hsl(46, 51, 68) }), 295 | MasonHeaderSecondary({ LazyButtonActive }), 296 | MasonMuted({ bg = lnbg, fg = hsl(42, 52, 56) }), 297 | MasonHighlight({ bg = bgc, fg = hsl(71, 27, 40) }), 298 | MasonMutedBlock({ MasonMuted }), 299 | MasonMutedBlockBold({ MasonHighlight }), 300 | MasonHighlightBlock({ LazyButtonActive }), 301 | MasonHighlightBlockBold({ LazyButtonActive }), 302 | MasonHighlightBlockSecondary({}), 303 | MasonHighlightBlockBoldSecondary({}), 304 | MasonHighlightSecondary({}), 305 | MasonError({}), 306 | MasonWarning({}), 307 | MasonHeading({}), 308 | User1({ fg = hsl(46, 51, 68), bg = hsl(26, 47, 50) }), 309 | User2({ fg = hsl(46, 51, 68), bg = hsl(0, 0, 40) }), 310 | User3({ fg = hsl(46, 51, 68), bg = hsl(22, 46, 48) }), 311 | User4({ fg = hsl(46, 51, 68), bg = bgc }), 312 | User5({ fg = hsl(46, 51, 68), bg = hsl(26, 47, 50) }), 313 | User6({ fg = hsl(46, 51, 68), bg = hsl(42, 52, 56) }), 314 | User7({ fg = hsl(46, 51, 68), bg = hsl(71, 27, 40) }), 315 | User8({ fg = hsl(46, 51, 68), bg = hsl(22, 46, 48) }), 316 | User9({ fg = hsl(46, 51, 68), bg = hsl(0, 0, 40) }), 317 | htmlTagName({ fg = hsl(120, 17, 45) }), 318 | htmlTag({ fg = hsl(120, 17, 45) }), 319 | htmlEndTag({ htmlTag }), 320 | htmlArg({ fg = hsl(120, 17, 45) }), 321 | htmlH1({ gui = "bold" }), 322 | htmlBold({ gui = "bold" }), 323 | htmlItalic({ gui = "underline" }), 324 | htmlUnderline({ gui = "underline" }), 325 | htmlUnderlineItalic({ gui = "underline" }), 326 | htmlBoldItalic({ gui = "bold,underline" }), 327 | htmlBoldUnderline({ gui = "bold,underline" }), 328 | htmlBoldUnderlineItalic({ gui = "bold,underline" }), 329 | xmlTagName({ fg = hsl(72, 27, 40) }), 330 | xmlString({ xmlTagName }), 331 | xmlTag({ fg = hsl(71, 27, 40) }), 332 | xmlAttrib({ xmlTag }), 333 | xmlEndTag({ xmlTag }), 334 | xmlEqual({ xmlTag }), 335 | phpSpecialFunction({ fg = hsl(26, 47, 50) }), 336 | phpIdentifier({ fg = hsl(22, 46, 48) }), 337 | phpVarSelector({ phpIdentifier }), 338 | markdownBold({ gui = "bold" }), 339 | markdownItalic({ gui = "italic" }), 340 | gitCommitBranch({ fg = hsl(22, 46, 48) }), 341 | gitCommitSelectedType({ fg = hsl(120, 17, 45) }), 342 | gitCommitSelectedFile({ fg = hsl(120, 17, 45) }), 343 | gitCommitUnmergedType({ fg = hsl(33, 22, 33) }), 344 | gitCommitDiscardedType({ gitCommitUnmergedType }), 345 | gitCommitUnmergedFile({ fg = hsl(33, 22, 33) }), 346 | gitCommitUntrackedFile({ gitCommitUnmergedFile }), 347 | gitCommitDiscardedFile({ gitCommitUnmergedFile }), 348 | -- GitSignsAdd({ fg = hsl(71, 27, 40), bg = lnbg }), 349 | GitSignsAdd({ fg = hsl(120, 17, 45), bg = lnbg }), 350 | GitSignsChange({ fg = hsl(33, 22, 33), bg = lnbg }), 351 | GitSignsDelete({ fg = hsl(15, 40, 50), bg = lnbg }), 352 | lessVariable({ fg = hsl(22, 46, 48) }), 353 | shDerefSimple({ fg = hsl(22, 46, 48) }), 354 | shDerefVar({ shDerefSimple }), 355 | mustacheSection({ gui = "bold" }), 356 | mustacheMarker({ fg = hsl(26, 47, 50) }), 357 | mustacheVariable({ fg = hsl(42, 52, 56) }), 358 | mustacheVariableUnescape({ fg = hsl(33, 22, 33) }), 359 | mustachePartial({ fg = hsl(26, 47, 50) }), 360 | SyntasticErrorSign({ fg = hsl(22, 46, 48) }), 361 | SyntasticWarningSign({ fg = hsl(33, 22, 33) }), 362 | netrwExe({ fg = hsl(33, 22, 33) }), 363 | netrwClassify({ fg = hsl(0, 0, 40), gui = "bold" }), 364 | LspBorderBG({ fg = hsl(33, 22, 33), bg = bgc }), 365 | DiagnosticHintFloating({ fg = hsl(71, 27, 40) }), 366 | DiagnosticVirtualTextWarning({ fg = hsl(46, 51, 68) }), 367 | DiagnosticWarning({ fg = hsl(22, 46, 48) }), 368 | DiagnosticFloatingWarning({ DiagnosticWarning }), 369 | DiagnosticWarningFloating({ fg = hsl(46, 51, 68) }), 370 | LspFloatWinNormal({ fg = hsl(46, 51, 68), bg = hsl(72, 27, 23) }), 371 | LspReferenceRead({ 372 | fg = hsl(120, 17, 45), 373 | gui = "underline", 374 | sp = hsl(32, 98, 56), 375 | }), 376 | LspReferenceText({ 377 | fg = hsl(46, 51, 68), 378 | gui = "underline", 379 | bg = hsl(72, 27, 23), 380 | sp = hsl(32, 98, 56), 381 | }), 382 | LspReferenceWrite({ 383 | fg = hsl(120, 17, 45), 384 | gui = "underline", 385 | sp = hsl(32, 98, 56), 386 | }), 387 | LspSignatureActiveParameter({ 388 | sp = hsl(50, 92, 80), 389 | gui = "underline,italic", 390 | }), 391 | TelescopeSelectionCaret({ fg = hsl(46, 51, 68), bg = hsl(71, 27, 40) }), 392 | TelescopeBorder({ fg = hsl(33, 22, 33), bg = lnbg }), 393 | TelescopePromptCounter({ TelescopeBorder }), 394 | TelescopeResultsBorder({ TelescopeBorder }), 395 | TelescopePreviewBorder({ TelescopeBorder }), 396 | TelescopeTitle({ fg = hsl(120, 17, 45), bg = lnbg }), 397 | TelescopePromptTitle({ TelescopeTitle }), 398 | TelescopeResultsTitle({ TelescopeTitle }), 399 | TelescopePreviewTitle({ TelescopeTitle }), 400 | TelescopePromptPrefix({ TelescopeTitle }), 401 | TelescopePromptBorder({ fg = hsl(22, 46, 48), bg = lnbg }), 402 | TelescopePreviewLine({ TelescopeSelection }), 403 | CurSearch({ Search }), 404 | IblIndent({ fg = hsl(94, 22, 15), gui = "nocombine" }), 405 | IblWhitespace({ fg = hsl(94, 22, 15), gui = "nocombine" }), 406 | IblScope({ fg = hsl(72, 27, 23), gui = "nocombine" }), 407 | ScrollbarHandle({ blend = 0, bg = lnbg }), 408 | ScrollbarSearch({ fg = hsl(42, 52, 56) }), 409 | ScrollbarSearchHandle({ fg = hsl(42, 52, 56), blend = 0, bg = lnbg }), 410 | ScrollbarError({ fg = hsl(33, 22, 33) }), 411 | ScrollbarErrorHandle({ fg = hsl(33, 22, 33), blend = 0, bg = lnbg }), 412 | ScrollbarWarn({ fg = hsl(22, 46, 48) }), 413 | ScrollbarWarnHandle({ fg = hsl(22, 46, 48), blend = 0, bg = lnbg }), 414 | ScrollbarInfo({ fg = hsl(120, 17, 45) }), 415 | ScrollbarInfoHandle({ fg = hsl(120, 17, 45), blend = 0, bg = lnbg }), 416 | ScrollbarCursor({ fg = hsl(0, 0, 13) }), 417 | ScrollbarCursorHandle({ fg = hsl(0, 0, 13), blend = 0, bg = lnbg }), 418 | ScrollbarHint({ fg = hsl(120, 17, 45) }), 419 | ScrollbarHintHandle({ fg = hsl(120, 17, 45), blend = 0, bg = lnbg }), 420 | ScrollbarGitChange({ fg = hsl(33, 22, 33) }), 421 | ScrollbarGitChangeHandle({ fg = hsl(33, 22, 33), blend = 0, bg = lnbg }), 422 | ScrollbarGitDelete({ fg = hsl(22, 46, 48) }), 423 | ScrollbarGitDeleteHandle({ fg = hsl(22, 46, 48), blend = 0, bg = lnbg }), 424 | ScrollbarGitAdd({ fg = hsl(120, 17, 45) }), 425 | ScrollbarGitAddHandle({ fg = hsl(120, 17, 45), blend = 0, bg = lnbg }), 426 | ScrollbarMisc({ fg = hsl(26, 47, 50) }), 427 | ScrollbarMiscHandle({ fg = hsl(26, 47, 50), blend = 0, bg = lnbg }), 428 | WhichKey({ bg = lnbg, fg = hsl(46, 51, 68) }), 429 | WhichKeyBorder({ bg = lnbg }), 430 | WhichKeyDesc({ fg = hsl(120, 17, 45), bg = lnbg }), 431 | WhichKeyGroup({ bg = lnbg }), 432 | WhichKeySeparator({ bg = lnbg, fg = hsl(42, 52, 56) }), 433 | WhichKeyFloat({ bg = lnbg }), 434 | WhichKeyValue({ fg = hsl(42, 52, 56) }), 435 | CmpItemAbbrDeprecated({ DiagnosticWarn }), 436 | CmpItemAbbrMatch({ String }), 437 | CmpItemAbbrMatchFuzzy({ String }), 438 | CmpItemKindVariable({ Normal }), 439 | CmpItemKindInterface({ Type }), 440 | CmpItemKindText({ Normal }), 441 | CmpItemKindFunction({ Function }), 442 | CmpItemKindMethod({ Function }), 443 | CmpItemKindKeyword({ Keyword }), 444 | CmpItemKindProperty({ Field }), 445 | CmpItemKindUnit({ Keyword }), 446 | } 447 | end) 448 | ---@diagnostic disable 449 | return theme 450 | -------------------------------------------------------------------------------- /shipwright_build.lua: -------------------------------------------------------------------------------- 1 | local colorscheme = require("lush_theme.darkearth") 2 | local lushwright = require("shipwright.transform.lush") 3 | 4 | -- export to lua 5 | run(colorscheme, 6 | lushwright.to_lua, 7 | { patchwrite, "colors/darkearth.lua", "-- PATCH_OPEN", "-- PATCH_CLOSE" } 8 | ) 9 | 10 | -- export to vimscript 11 | -- run( 12 | -- colorscheme, 13 | -- lushwright.to_vimscript, 14 | -- { overwrite, "colors/darkearth.tmp" } 15 | -- ) 16 | --------------------------------------------------------------------------------