From 56530d7f392a59f9239a2ff3cd4fea1de982e0e4 Mon Sep 17 00:00:00 2001 From: Jason Swank Date: Sat, 27 Dec 2025 17:24:17 +0000 Subject: [PATCH] wip --- vim/.vim/colors/aomi-grayscale.vim | 139 +++++++++++++ vim/.vim/colors/less.vim | 4 +- vim/.vim/colors/plain-cterm.vim | 315 +++++++++++++++++++++++++++++ vim/.vimrc | 2 + zsh/.zshenv | 2 +- 5 files changed, 459 insertions(+), 3 deletions(-) create mode 100644 vim/.vim/colors/aomi-grayscale.vim create mode 100644 vim/.vim/colors/plain-cterm.vim diff --git a/vim/.vim/colors/aomi-grayscale.vim b/vim/.vim/colors/aomi-grayscale.vim new file mode 100644 index 0000000..2bd110f --- /dev/null +++ b/vim/.vim/colors/aomi-grayscale.vim @@ -0,0 +1,139 @@ +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "aomi-grayscale" + +" TODO: cterm colors + +" Colors abbrev +let s:vmode = "gui" +let s:none = "NONE" +let s:black = "#0d1117" +let s:deep = "#171a1f" +let s:dull = "#40444a" +let s:gray = "#78808a" +let s:semiwhite = "#aeb9c2" +let s:white = "#e4ecf3" + +if &background == 'light' + let s:black = "#ffffff" + let s:deep = "#e9eff5" + let s:dull = "#c7cfd6" + let s:gray = "#9097a3" + let s:semiwhite = "#6e7781" + let s:white = "#06070a" +endif + +let s:bg_none = " " .s:vmode ."bg=" .s:none +let s:bg_black = " " .s:vmode ."bg=" .s:black +let s:bg_deep = " " .s:vmode ."bg=" .s:deep +let s:bg_dull = " " .s:vmode ."bg=" .s:dull +let s:bg_gray = " " .s:vmode ."bg=" .s:gray +let s:bg_semiwhite = " " .s:vmode ."bg=" .s:semiwhite +let s:bg_white = " " .s:vmode ."bg=" .s:white + +let s:fg_none = " " .s:vmode ."fg=" .s:none +let s:fg_black = " " .s:vmode ."fg=" .s:black +let s:fg_deep = " " .s:vmode ."fg=" .s:deep +let s:fg_dull = " " .s:vmode ."fg=" .s:dull +let s:fg_gray = " " .s:vmode ."fg=" .s:gray +let s:fg_semiwhite = " " .s:vmode ."fg=" .s:semiwhite +let s:fg_white = " " .s:vmode ."fg=" .s:white + +" Format abbrev +let s:none = "NONE" +let s:t_none = "NONE" +let s:n = "NONE" +let s:c = ",undercurl" +let s:r = ",reverse" +let s:s = ",standout" +let s:b = ",bold" +let s:u = ",underline" +let s:i = ",italic" + +let s:vmode = "cterm" +let s:fmt_none = " " .s:vmode."=NONE". " term=NONE" +let s:fmt_bold = " " .s:vmode."=NONE".s:b. " term=NONE".s:b +let s:fmt_bldi = " " .s:vmode."=NONE".s:b. " term=NONE".s:b +let s:fmt_undr = " " .s:vmode."=NONE".s:u. " term=NONE".s:u +let s:fmt_undb = " " .s:vmode."=NONE".s:u.s:b. " term=NONE".s:u.s:b +let s:fmt_undi = " " .s:vmode."=NONE".s:u. " term=NONE".s:u +let s:fmt_curl = " " .s:vmode."=NONE".s:c. " term=NONE".s:c +let s:fmt_ital = " " .s:vmode."=NONE".s:i. " term=NONE".s:i +let s:fmt_stnd = " " .s:vmode."=NONE".s:s. " term=NONE".s:s +let s:fmt_revr = " " .s:vmode."=NONE".s:r. " term=NONE".s:r +let s:fmt_revb = " " .s:vmode."=NONE".s:r.s:b. " term=NONE".s:r.s:b + +" Main colors +let s:normal = s:fmt_none .s:fg_white .s:bg_black +let s:keyword = s:fmt_none .s:fg_semiwhite .s:bg_none +let s:comment = s:fmt_none .s:fg_gray .s:bg_none +let s:attention = s:fmt_undr .s:fg_white .s:bg_none + +" Basic highlights +exe "hi Normal" .s:normal +exe "hi Comment" .s:comment +exe "hi Constant" .s:normal +exe "hi String" .s:keyword +exe "hi Character" .s:keyword +exe "hi Identifier" .s:normal +exe "hi Statement" .s:keyword +exe "hi PreProc" .s:keyword +exe "hi Type" .s:normal +exe "hi Special" .s:normal +exe "hi Underlined" .s:fmt_undr .s:fg_white .s:bg_none +exe "hi Ignore" .s:fmt_none .s:fg_none .s:bg_none +exe "hi Error" .s:attention +exe "hi Todo" .s:fmt_bold .s:fg_white .s:bg_deep + +exe "hi SpecialKey" .s:fmt_none .s:fg_dull .s:bg_none +exe "hi NonText" .s:fmt_none .s:fg_dull .s:bg_none +exe "hi StatusLine" .s:fmt_none .s:fg_white .s:bg_dull +exe "hi StatusLineNC" .s:fmt_none .s:fg_gray .s:bg_deep +exe "hi StatusLineTerm" .s:fmt_none .s:fg_white .s:bg_dull +exe "hi StatusLineTermNC" .s:fmt_none .s:fg_gray .s:bg_deep +exe "hi Visual" .s:fmt_none .s:fg_none .s:bg_dull +exe "hi Directory" .s:keyword +exe "hi ErrorMsg" .s:attention +exe "hi IncSearch" .s:fmt_revr .s:fg_gray .s:bg_black +exe "hi Search" .s:fmt_revr .s:fg_white .s:bg_black +exe "hi MoreMsg" .s:normal +exe "hi ModeMsg" .s:normal +exe "hi LineNr" .s:fmt_none .s:fg_dull .s:bg_none +exe "hi CursorLineNr" .s:fmt_none .s:fg_white .s:bg_none +exe "hi Question" .s:attention +exe "hi VertSplit" .s:fmt_none .s:fg_deep .s:bg_none +exe "hi Title" .s:normal +exe "hi VisualNOS" .s:fmt_none .s:fg_none .s:bg_dull +exe "hi WarningMsg" .s:attention +exe "hi WildMenu" .s:fmt_none .s:fg_white .s:bg_dull +exe "hi Folded" .s:fmt_none .s:fg_gray .s:bg_deep +exe "hi FoldColumn" .s:fmt_none .s:fg_white .s:bg_deep +" TODO: Diff +exe "hi SignColumn" .s:normal +exe "hi Conceal" .s:fmt_none +exe "hi SpellBad" .s:fmt_undr +exe "hi SpellCap" .s:fmt_undr +exe "hi SpellRare" .s:fmt_undr +exe "hi SpellLocal" .s:fmt_undr +exe "hi PMenu" .s:fmt_none .s:fg_white .s:bg_deep +exe "hi PMenuSel" .s:fmt_none .s:fg_white .s:bg_dull +exe "hi PMenuSbar" .s:fmt_none .s:fg_gray .s:bg_deep +exe "hi PMenuThumb" .s:fmt_none .s:fg_gray .s:bg_gray +exe "hi TabLine" .s:fmt_undr .s:fg_gray .s:bg_deep +exe "hi TabLineFill" .s:fmt_undr .s:fg_gray .s:bg_deep +exe "hi TabLineSel" .s:fmt_undr .s:fg_semiwhite .s:bg_deep +exe "hi CursorLine" .s:fmt_none .s:fg_none .s:bg_deep +exe "hi CursorColumn" .s:fmt_none .s:fg_none .s:bg_deep +exe "hi Cursor" .s:fmt_none .s:fg_none .s:bg_dull +exe "hi MatchParen" .s:fmt_none .s:fg_none .s:bg_dull + +" Links +hi link CtrlPMatch Visual + +hi link LspErrorVirtualText Comment + +if &background == 'light' + exe "hi Visual" .s:fmt_none .s:fg_none .s:bg_deep +endif diff --git a/vim/.vim/colors/less.vim b/vim/.vim/colors/less.vim index c874913..e22c9db 100644 --- a/vim/.vim/colors/less.vim +++ b/vim/.vim/colors/less.vim @@ -12,14 +12,14 @@ if exists("syntax_on") endif let g:colors_name = "less" -hi Normal term=none ctermfg=7 ctermbg=0 gui=none guifg=LightGray guibg=black +hi Normal term=none ctermfg=none ctermbg=none gui=none guifg=LightGray guibg=black hi Directory term=bold cterm=bold ctermfg=blue guifg=Blue hi Search term=reverse ctermfg=white ctermbg=blue guifg=white guibg=Blue hi MoreMsg term=bold cterm=bold ctermfg=darkgreen gui=bold guifg=DarkGreen hi ModeMsg term=bold cterm=bold gui=bold guifg=White guibg=Blue hi LineNr term=underline cterm=bold ctermfg=darkcyan guifg=DarkCyan hi Question term=standout cterm=bold ctermfg=darkgreen gui=bold guifg=DarkGreen -hi Comment term=bold cterm=bold ctermfg=0 gui=none guifg=DarkGray +hi Comment term=bold cterm=none ctermfg=10 gui=none guifg=DarkGray hi Constant term=bold cterm=none ctermfg=7 gui=none guifg=LightGray hi Special term=bold cterm=none ctermfg=3 gui=none guifg=Orange hi Identifier term=none cterm=none ctermfg=7 gui=none guifg=LightGray diff --git a/vim/.vim/colors/plain-cterm.vim b/vim/.vim/colors/plain-cterm.vim new file mode 100644 index 0000000..bdc40cb --- /dev/null +++ b/vim/.vim/colors/plain-cterm.vim @@ -0,0 +1,315 @@ +" Name: plain.vim +" Version: 0.1 +" Maintainer: github.com/andreypopp +" License: The MIT License (MIT) +" +" Based on +" +" https://github.com/pbrisbin/vim-colors-off (MIT License) +" +" which in turn based on +" +" https://github.com/reedes/vim-colors-pencil (MIT License) +" +""" +hi clear + +if exists('syntax on') + syntax reset +endif + +let g:colors_name='plain' + +let s:none = {"cterm": "NONE"} + +let s:dark_black = {"cterm": "0"} +let s:black = {"cterm": "8"} + +let s:dark_red = {"cterm": "1"} +let s:red = {"cterm": "9"} + +let s:dark_green = {"cterm": "2"} +let s:green = {"cterm": "10"} + +let s:dark_yellow = {"cterm": "3"} +let s:yellow = {"cterm": "11"} + +let s:dark_blue = {"cterm": "4"} +let s:blue = {"cterm": "12"} + +let s:dark_magenta = {"cterm": "5"} +let s:magenta = {"cterm": "13"} + +let s:dark_cyan = {"cterm": "6"} +let s:cyan = {"cterm": "14"} + +let s:dark_white = {"cterm": "7"} +let s:white = {"cterm": "15"} + +let s:always_dark_black = {"cterm": "16"} +let s:always_black = {"cterm": "17"} + +let s:always_dark_white = {"cterm": "18"} +let s:always_white = {"cterm": "19"} + +let s:bg = s:none +let s:bg_subtle = s:dark_white +let s:norm = s:none +let s:norm_subtle = s:black +let s:visual = s:cyan +let s:visual_fg = s:white +let s:cursor_line = {"cterm": "none"} +let s:constant = s:cyan +let s:comment = s:black +let s:selection = s:yellow +let s:selection_fg = s:always_dark_black +let s:ok = s:green +let s:warning = s:dark_yellow +let s:error = s:dark_red + +" https://github.com/noahfrederick/vim-hemisu/ +function! s:h(group, style) + execute "highlight" a:group + \ "ctermfg=" (has_key(a:style, "fg") ? a:style.fg.cterm : "NONE") + \ "ctermbg=" (has_key(a:style, "bg") ? a:style.bg.cterm : "NONE") + \ "cterm=" (has_key(a:style, "cterm") ? a:style.cterm : "NONE") + \ "guisp=" (has_key(a:style, "guisp") ? a:style.guisp : "NONE") + \ "guifg=NONE" + \ "guibg=NONE" + \ "gui=NONE" +endfunction + +" __Normal__ +if has("gui") + call s:h("Normal", {"fg": s:norm, "bg": s:bg}) + call s:h("Cursor", {"fg": s:bg, "bg": s:norm}) +else + call s:h("Normal", {"fg": s:norm}) + hi! link Cursor Identifier +endif +hi! link Identifier Normal +hi! link Function Identifier +hi! link Type Normal +hi! link StorageClass Type +hi! link Structure Type +hi! link Typedef Type +hi! link Special Normal +hi! link SpecialChar Special +hi! link Tag Special +hi! link Delimiter Special +hi! link SpecialComment Special +hi! link Debug Special +hi! link VertSplit Normal +hi! link PreProc Normal +hi! link Define PreProc +hi! link Macro PreProc +hi! link PreCondit PreProc + +" __Operator__ +call s:h("Noise", {"fg": s:norm_subtle}) +hi! link Operator Noise +hi! link LineNr Noise +hi! link CursorLineNr LineNr +hi! link FoldColumn LineNr +hi! link SignColumn LineNr + +" __Comment__ +call s:h("Comment", {"fg": s:comment, "cterm": "none"}) + +" __Constant__ +call s:h("Constant", {"fg": s:constant}) +hi! link Character Constant +hi! link Number Constant +hi! link Boolean Constant +hi! link Float Constant +hi! link String Constant +hi! link Directory Constant +hi! link Title Constant + +" __Statement__ +call s:h("Statement", {"fg": s:norm, "cterm": "bold"}) +hi! link Include Statement +hi! link Conditonal Statement +hi! link Repeat Statement +hi! link Label Statement +hi! link Keyword Statement +hi! link Exception Statement + +" __Underlined__ +call s:h("Underlined", {"fg": s:norm, "cterm": "underline"}) + +" __ExtraWhitespace__ +call s:h("ExtraWhitespace", {"bg": s:error}) + +" __ErrorMsg__ +call s:h("ErrorMsg", {"fg": s:error}) +hi! link Error ErrorMsg +hi! link Question ErrorMsg +" __WarningMsg__ +call s:h("WarningMsg", {"fg": s:warning}) +" __InfoMsg__ +call s:h("InfoMsg", {"fg": s:dark_magenta, "cterm": "bold"}) +" __MoreMsg__ +call s:h("MoreMsg", {"fg": s:norm_subtle, "cterm": "bold"}) +hi! link ModeMsg MoreMsg + +" __NonText__ +call s:h("NonText", {"fg": s:norm_subtle}) +hi! link Folded NonText +hi! link qfLineNr NonText + +" __Visual__ +call s:h("Visual", {"bg": s:visual, "fg": s:visual_fg}) +" __VisualNOS__ +call s:h("VisualNOS", {"bg": s:bg_subtle, "fg": s:visual_fg}) + +call s:h("Ignore", {"fg": s:bg}) + +" __DiffAdd__ +call s:h("DiffAdd", {"fg": s:dark_green}) +" __DiffDelete__ +call s:h("DiffDelete", {"fg": s:dark_red}) +" __DiffChange__ +call s:h("DiffChange", {"fg": s:dark_yellow}) +" __DiffText__ +call s:h("DiffText", {"fg": s:constant}) + +if has("gui_running") + call s:h("SpellBad", {"sp": s:dark_red}) + call s:h("SpellCap", {"sp": s:ok}) + call s:h("SpellRare", {"sp": s:error}) + call s:h("SpellLocal", {"sp": s:ok}) +else + call s:h("SpellBad", {"cterm": "underline", "fg": s:dark_red}) + call s:h("SpellCap", {"cterm": "underline", "fg": s:ok}) + call s:h("SpellRare", {"cterm": "underline", "fg": s:error}) + call s:h("SpellLocal", {"cterm": "underline", "fg": s:ok}) +endif + +hi! link helpHyperTextEntry Title +hi! link helpHyperTextJump String + +call s:h("StatusLine", { + \"cterm": "bold,underline", + \"bg": s:bg, + \"fg": s:norm + \}) +call s:h("StatusLineNC", { + \"cterm": "bold,underline", + \"bg": s:bg, + \"fg": s:bg_subtle + \}) + +" Semantic status line highlights +call s:h("StatusLineOk", { + \"cterm": "bold,underline", + \"bg": s:bg, + \"fg": s:ok + \}) +call s:h("StatusLineError", { + \"cterm": "bold,underline", + \"bg": s:bg, + \"fg": s:error + \}) +call s:h("StatusLineWarning", { + \"cterm": "bold,underline", + \"bg": s:bg, + \"fg": s:warning + \}) + +call s:h("WildMenu", {"cterm": "underline,bold", "bg": s:bg, "fg": s:norm}) + +" __Pmenu__ +call s:h("Pmenu", {"fg": s:norm, "bg": s:cursor_line}) +hi! link PmenuSbar Pmenu +hi! link PmenuThumb Pmenu +" __PmenuSel__ +call s:h("PmenuSel", {"fg": s:norm, "bg": s:cursor_line, "cterm": "bold"}) + +hi! link TabLine Normal +hi! link TabLineSel Keyword +hi! link TabLineFill Normal + +" __CursorLine__ +call s:h("CursorLine", {"bg": s:cursor_line, "cterm": "underline"}) +" __CursorColumn__ +call s:h("ColorColumn", {"bg": s:cursor_line}) + +" __MatchParen__ +call s:h("MatchParen", {"bg": s:yellow, "fg": s:always_dark_black}) + +hi! link htmlH1 Normal +hi! link htmlH2 Normal +hi! link htmlH3 Normal +hi! link htmlH4 Normal +hi! link htmlH5 Normal +hi! link htmlH6 Normal + +hi link diffRemoved DiffDelete +hi link diffAdded DiffAdd + +" Signify, git-gutter +hi link SignifySignAdd LineNr +hi link SignifySignDelete LineNr +hi link SignifySignChange LineNr +hi link GitGutterAdd LineNr +hi link GitGutterDelete LineNr +hi link GitGutterChange LineNr +hi link GitGutterChangeDelete LineNr + +hi link jsFlowTypeKeyword Statement +hi link jsFlowImportType Statement +hi link jsFunction Statement +hi link jsGlobalObjects Normal +hi link jsGlobalNodeObjects Normal +hi link jsArrowFunction Noise +hi link StorageClass Statement + +hi link xmlTag Constant +hi link xmlTagName xmlTag +hi link xmlEndTag xmlTag +hi link xmlAttrib xmlTag + +hi link markdownH1 Statement +hi link markdownH2 Statement +hi link markdownH3 Statement +hi link markdownH4 Statement +hi link markdownH5 Statement +hi link markdownH6 Statement +hi link markdownListMarker Constant +hi link markdownCode Constant +hi link markdownCodeBlock Constant +hi link markdownCodeDelimiter Constant +hi link markdownHeadingDelimiter Constant + +hi link yamlBlockMappingKey Statement +hi link pythonOperator Statement + +hi link ALEWarning WarningMsg +hi link ALEWarningSign WarningMsg +hi link ALEError ErrorMsg +hi link ALEErrorSign ErrorMsg +hi link ALEInfo InfoMsg +hi link ALEInfoSign InfoMsg + +hi link sqlStatement Statement +hi link sqlKeyword Keyword + +hi link wikiHeader1 Statement +hi link wikiHeader2 Statement +hi link wikiHeader3 Statement +hi link wikiHeader4 Statement +hi link wikiHeader5 Statement +hi link wikiHeader6 Statement +hi link wikiList Statement +hi link wikiPre Constant +hi link wikiCode Constant + +hi link tsxTag Constant +hi link tsxTagName Constant +hi link tsxCloseTagName Constant +hi link tsxAttrib Constant + +" __Search__ (make sure it comes after everything else) +call s:h("Search", {"bg": s:selection, "fg": s:selection_fg}) +hi! link IncSearch Search diff --git a/vim/.vimrc b/vim/.vimrc index 46897df..06d9de4 100644 --- a/vim/.vimrc +++ b/vim/.vimrc @@ -8,6 +8,8 @@ set backspace=indent,eol,start set background=dark colorscheme theunixzoo +"colorscheme plain-cterm +"colorscheme aomi-grayscale "colorscheme solarized8 "source /home/jswank/.config/nvim/colors-now diff --git a/zsh/.zshenv b/zsh/.zshenv index 2945275..24d9eb3 100644 --- a/zsh/.zshenv +++ b/zsh/.zshenv @@ -24,4 +24,4 @@ export BROWSER=open_browser.sh export TF_PLUGIN_CACHE_DIR=~/.local/state/tofu # With ghostty + tmux + nvim, having this autoset to 'truecolor' has a weird effect -unset COLORTERM +# unset COLORTERM