diff options
| author | Tim Keller <tjk@tjkeller.xyz> | 2026-05-22 17:06:16 -0500 |
|---|---|---|
| committer | Tim Keller <tjk@tjkeller.xyz> | 2026-05-22 17:06:16 -0500 |
| commit | e3f222487a57b2f3f995628630cd9ae65c3a210b (patch) | |
| tree | f1a3c8582ae71d859b2dd6e7c3a55b2f2a30d3f8 /lua/tjk/plugins/colorscheme.lua | |
| parent | f83593f430118f0499454f88cbe028c822e760a3 (diff) | |
| download | nvim-e3f222487a57b2f3f995628630cd9ae65c3a210b.tar.xz nvim-e3f222487a57b2f3f995628630cd9ae65c3a210b.zip | |
Diffstat (limited to 'lua/tjk/plugins/colorscheme.lua')
| -rw-r--r-- | lua/tjk/plugins/colorscheme.lua | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/lua/tjk/plugins/colorscheme.lua b/lua/tjk/plugins/colorscheme.lua new file mode 100644 index 0000000..4a3756d --- /dev/null +++ b/lua/tjk/plugins/colorscheme.lua @@ -0,0 +1,67 @@ +-- use another colorscheme if running as root +if os.getenv "USER" == "root" then + vim.cmd.colorscheme "koehler" + return +end + +return { + "gruvbox", + "https://github.com/ellisonleao/gruvbox.nvim", + setup = { + italic = { + strings = false, + emphasis = true, + comments = false, + operators = false, + folds = true, + }, + invert_selection = true, -- swap fg w/ bg on select + contrast = "hard", -- preferred theme variant + palette_overrides = { + light0 = "#ffffff", -- use white instead of the default off-white for text + light1 = "#ffffff", + dark2 = "#363636", -- darker whitespace characters + }, + overrides = { + CursorLine = { bg = "#282828" }, -- dark0 (non hard) + Directory = { link = "GruvboxGreenBold" }, + -- treesitter overrides (more similar to builtin python syntax highlighting) + -- treesitter selectors can be overridden per language using @selector.language + ["@variable"] = { link = "GruvboxFg0" }, + ["@punctuation.bracket"] = { link = "GruvboxFg0" }, + ["@punctuation.delimiter"] = { link = "GruvboxFg0" }, + ["@keyword.import"] = { link = "GruvboxBlue" }, + ["@function"] = { link = "GruvboxAqua" }, + ["@function.method"] = { link = "GruvboxAqua" }, + ["@function.method"] = { link = "GruvboxAqua" }, + ["@attribute.builtin"] = { link = "GruvboxGreenBold" }, + ["@attribute"] = { link = "GruvboxGreenBold" }, + ["@operator"] = { link = "GruvboxRed" }, + ["@variable.member"] = { link = "GruvboxFg0" }, + ["@variable.parameter"] = { link = "GruvboxFg0" }, + ["@function.call"] = { link = "GruvboxPurple" }, + ["@function.method.call"] = { link = "GruvboxPurple" }, + -- rainbow delimiters colors + RainbowDelimiterRed = { fg = "#ff4433" }, + RainbowDelimiterYellow = { fg = "#ffff22" }, + RainbowDelimiterBlue = { fg = "#66f3ff" }, + RainbowDelimiterOrange = { fg = "#ffaa00" }, + RainbowDelimiterGreen = { fg = "#99ff44" }, + RainbowDelimiterViolet = { fg = "#aa00ff" }, + RainbowDelimiterCyan = { fg = "#22ddff" }, + -- TODO italic string start / end + --["@string_start"] = { italic = true }, + --["@string_end"] = { italic = true }, + }, + }, + loadFn = function() + -- use dark gruvbox variant + vim.o.background = "dark" + + -- set colorscheme + vim.cmd.colorscheme "gruvbox" + + -- fix todo comment highlighting (here instead of theme overrides since this replaces the bg w/ default) + vim.api.nvim_set_hl(0, "Todo", { fg = "#ffffff", bold = true }) + end, +} |
