diff options
author | Tim Keller <tjk@tjkeller.xyz> | 2024-10-18 21:50:58 -0500 |
---|---|---|
committer | Tim Keller <tjk@tjkeller.xyz> | 2024-10-18 21:50:58 -0500 |
commit | 43558b3a614de4a9174824b1cb4de8bc1ad147a9 (patch) | |
tree | b00315d7783f457d675410e36c2a0cf68b022bcc /lua/tjk/plugins/colorscheme.lua | |
download | nvim-43558b3a614de4a9174824b1cb4de8bc1ad147a9.tar.xz nvim-43558b3a614de4a9174824b1cb4de8bc1ad147a9.zip |
initial commit
Diffstat (limited to 'lua/tjk/plugins/colorscheme.lua')
-rw-r--r-- | lua/tjk/plugins/colorscheme.lua | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/lua/tjk/plugins/colorscheme.lua b/lua/tjk/plugins/colorscheme.lua new file mode 100644 index 0000000..2307097 --- /dev/null +++ b/lua/tjk/plugins/colorscheme.lua @@ -0,0 +1,81 @@ +local root_mode = os.getenv "USER" == "root" +local tty_mode = os.getenv "DISPLAY" == nil + +-- load condition +local enable_gruvbox = not root_mode and not tty_mode + +-- use another colorscheme if running as root +if root_mode then + vim.cmd.colorscheme "koehler" +end + +-- disable termguicolors when in a tty +if tty_mode then + vim.opt.termguicolors = false +end + +return { + "ellisonleao/gruvbox.nvim", + cond = enable_gruvbox, + priority = 9001, + config = function() + vim.o.background = "dark" + + local gruvbox = require("gruvbox") + local colors = gruvbox.palette + + gruvbox.setup({ + italic = { + strings = false, + emphasis = true, + comments = false, + operators = false, + folds = true, + }, + invert_selection = true, + contrast = "hard", + 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 }, + }, + }) + + -- 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, +} |