From e42262beb9b936a62b7656a55613123632809f92 Mon Sep 17 00:00:00 2001 From: Matt Singleton Date: Wed, 6 Nov 2024 17:19:47 -0600 Subject: custom vim theme --- stow/vim/.vim/autoload/airline/themes/mono.vim | 55 +++++++ stow/vim/.vim/colors/mono.vim | 192 ++++++++++++++++++++++ stow/vim/.vim/pack/my-plugins/start/ale | 2 +- stow/vim/.vim/pack/my-plugins/start/ctrlp.vim | 2 +- stow/vim/.vim/pack/my-plugins/start/vim-airline | 2 +- stow/vim/.vim/pack/my-plugins/start/vim-dirvish | 2 +- stow/vim/.vim/pack/my-plugins/start/vim-eunuch | 2 +- stow/vim/.vim/pack/my-plugins/start/vim-gitgutter | 2 +- stow/vim/.vim/pack/my-plugins/start/vim-sensible | 2 +- stow/vim/.vimrc | 4 +- 10 files changed, 256 insertions(+), 9 deletions(-) create mode 100644 stow/vim/.vim/autoload/airline/themes/mono.vim create mode 100644 stow/vim/.vim/colors/mono.vim diff --git a/stow/vim/.vim/autoload/airline/themes/mono.vim b/stow/vim/.vim/autoload/airline/themes/mono.vim new file mode 100644 index 0000000..828a668 --- /dev/null +++ b/stow/vim/.vim/autoload/airline/themes/mono.vim @@ -0,0 +1,55 @@ +" Foreground colors +let s:black = { "gui": "#303030", "cterm": "236" } +let s:light_black = { "gui": "#585858", "cterm": "240" } +let s:blue_fg = { "gui": "#00005f", "cterm": "17" } +let s:green_fg = { "gui": "#005f00", "cterm": "22" } +let s:cyan_fg = { "gui": "#005f5f", "cterm": "23" } +let s:red_fg = { "gui": "#5f0000", "cterm": "52" } +let s:purple_fg = { "gui": "#5f005f", "cterm": "53" } +let s:yellow_fg = { "gui": "#5f5f00", "cterm": "58" } + +" Background colors +let s:white = { "gui": "#ffffff", "cterm": "231" } +let s:light_gray = { "gui": "#eeeeee", "cterm": "255" } +let s:md_gray = { "gui": "#dadada", "cterm": "253" } +let s:blue_bg = { 'gui': '#d7d7ff', 'cterm': '189' } +let s:green_bg = { 'gui': '#d7ffd7', 'cterm': '194' } +let s:cyan_bg = { 'gui': '#d7ffff', 'cterm': '195' } +let s:red_bg = { 'gui': '#ffd7d7', 'cterm': '224' } +let s:purple_bg = { 'gui': '#ffd7ff', 'cterm': '225' } +let s:yellow_bg = { 'gui': '#ffffd7', 'cterm': '230' } + +" Color sets +let s:dark = [ s:black.gui , s:md_gray.gui , s:black.cterm , s:md_gray.cterm ] +let s:light = [ s:black.gui , s:light_gray.gui , s:black.cterm , s:light_gray.cterm ] +let s:blue = [ s:black.gui , s:blue_bg.gui , s:black.cterm , s:blue_bg.cterm ] +let s:yellow = [ s:black.gui , s:yellow_bg.gui , s:black.cterm , s:yellow_bg.cterm ] +let s:red = [ s:black.gui , s:red_bg.gui , s:black.cterm , s:red_bg.cterm ] +let s:green = [ s:black.gui , s:green_bg.gui , s:black.cterm , s:green_bg.cterm ] + +let g:airline#themes#mono#palette = {} + +let g:airline#themes#mono#palette.accents = { + \ 'red': [ s:red_fg.gui , '' , s:red_fg.cterm , '' ], + \ } + +" Normal Mode +let g:airline#themes#mono#palette.normal = airline#themes#generate_color_map(s:blue, s:dark, s:light) + +" Insert Mode +let g:airline#themes#mono#palette.insert = copy(g:airline#themes#mono#palette.normal) +let g:airline#themes#mono#palette.insert.airline_a = s:yellow +let g:airline#themes#mono#palette.insert.airline_z = s:yellow + +" Replace Mode +let g:airline#themes#mono#palette.replace = copy(g:airline#themes#mono#palette.normal) +let g:airline#themes#mono#palette.replace.airline_a = s:red +let g:airline#themes#mono#palette.replace.airline_z = s:red + +" Visual Mode +let g:airline#themes#mono#palette.visual = copy(g:airline#themes#mono#palette.normal) +let g:airline#themes#mono#palette.visual.airline_a = s:green +let g:airline#themes#mono#palette.visual.airline_z = s:green + +" Inactive +let g:airline#themes#mono#palette.inactive = airline#themes#generate_color_map(s:light, s:light, s:light) diff --git a/stow/vim/.vim/colors/mono.vim b/stow/vim/.vim/colors/mono.vim new file mode 100644 index 0000000..ccae503 --- /dev/null +++ b/stow/vim/.vim/colors/mono.vim @@ -0,0 +1,192 @@ +" Name: mono.vim +" Version: 0.1 +" Maintainer: Matt Singleton (matt@xcolour.net) +" License: The MIT License (MIT) +" +" A mostly black and white 256 color scheme. +" +" Adapted from: +" https://github.com/pbrisbin/vim-colors-off +" Which was adapted from: +" https://github.com/reedes/vim-colors-pencil +" +""" +hi clear + +if exists('syntax on') + syntax reset +endif + +let g:colors_name='mono' + +" Foreground colors +let s:black = { "gui": "#303030", "cterm": "236" } +let s:light_black = { "gui": "#585858", "cterm": "240" } +let s:blue_fg = { "gui": "#00005f", "cterm": "17" } +let s:green_fg = { "gui": "#005f00", "cterm": "22" } +let s:cyan_fg = { "gui": "#005f5f", "cterm": "23" } +let s:red_fg = { "gui": "#5f0000", "cterm": "52" } +let s:purple_fg = { "gui": "#5f005f", "cterm": "53" } +let s:yellow_fg = { "gui": "#5f5f00", "cterm": "58" } + +" background colors +let s:white = { "gui": "#ffffff", "cterm": "231" } +let s:light_gray = { "gui": "#eeeeee", "cterm": "255" } +let s:blue_bg = { 'gui': '#d7d7ff', 'cterm': '189' } +let s:green_bg = { 'gui': '#d7ffd7', 'cterm': '194' } +let s:cyan_bg = { 'gui': '#d7ffff', 'cterm': '195' } +let s:red_bg = { 'gui': '#ffd7d7', 'cterm': '224' } +let s:purple_bg = { 'gui': '#ffd7ff', 'cterm': '225' } +let s:yellow_bg = { 'gui': '#ffffd7', 'cterm': '230' } + +let s:bg = s:white +let s:bg_subtle = s:light_gray +let s:norm = s:black + +let s:blue = s:blue_fg +let s:purple = s:purple_fg +let s:cyan = s:cyan_fg +let s:green = s:green_fg +let s:red = s:red_fg +let s:yellow = s:yellow_fg +let s:visual = s:cyan_bg + +" https://github.com/noahfrederick/vim-hemisu/ +function! s:h(group, style) + execute "highlight" a:group + \ "guifg=" (has_key(a:style, "fg") ? a:style.fg.gui : "NONE") + \ "guibg=" (has_key(a:style, "bg") ? a:style.bg.gui : "NONE") + \ "guisp=" (has_key(a:style, "sp") ? a:style.sp.gui : "NONE") + \ "gui=" (has_key(a:style, "gui") ? a:style.gui : "NONE") + \ "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") +endfunction + +call s:h("Normal", {"bg": s:bg, "fg": s:norm}) +call s:h("Comment", {"fg": s:light_black}) + +call s:h("Constant", {"fg": s:cyan}) +"hi! link Constant Normal +hi! link Character Constant +hi! link Number Constant +hi! link Boolean Constant +hi! link Float Constant +hi! link String Constant + +"call s:h("Identifier", {"fg": s:text_blue}) +hi! link Identifier Normal +hi! link Function Identifier + +"call s:h("Statement", {"fg": s:text_green}) +call s:h("Statement", {"gui": "bold", "cterm": "bold"}) +"hi! link Statement Normal +hi! link Conditonal Statement +hi! link Repeat Statement +hi! link Label Statement +hi! link Operator Statement +hi! link Keyword Statement +hi! link Exception Statement + +"call s:h("PreProc", {"fg": s:text_red}) +call s:h("PreProc", {"cterm": "bold"}) +"hi! link PreProc Normal +hi! link Include PreProc +hi! link Define PreProc +hi! link Macro PreProc +hi! link PreCondit PreProc + +"call s:h("Type", {"fg": s:text_purple}) +hi! link Type Normal +hi! link StorageClass Type +hi! link Structure Type +hi! link Typedef Type + +"call s:h("Special", {"fg": s:text_red}) +hi! link Special Normal +hi! link SpecialChar Special +hi! link Tag Special +hi! link Delimiter Special +hi! link SpecialComment Special +hi! link Debug Special + +call s:h("Underlined", {"fg": s:norm, "gui": "underline", "cterm": "underline"}) +call s:h("Ignore", {"fg": s:bg}) +call s:h("Error", {"fg": s:white, "bg": s:red, "cterm": "bold"}) +call s:h("Todo", {"fg": s:red_fg, "bg": s:red_bg, "gui": "bold,underline", "cterm": "bold,underline"}) +call s:h("SpecialKey", {"fg": s:yellow}) +call s:h("NonText", {"fg": s:light_black}) +call s:h("Directory", {"fg": s:blue}) +call s:h("ErrorMsg", {"fg": s:red}) +call s:h("IncSearch", {"bg": s:yellow_bg, "gui": "bold,underline", "cterm": "bold,underline"}) +call s:h("Search", {"bg": s:yellow_bg}) +call s:h("MoreMsg", {"fg": s:light_black, "cterm": "bold", "gui": "bold"}) +hi! link ModeMsg MoreMsg +call s:h("LineNr", {"fg": s:bg_subtle}) +call s:h("CursorLineNr", {"fg": s:blue, "bg": s:bg_subtle}) +call s:h("Question", {"fg": s:red}) +call s:h("StatusLine", {"bg": s:bg_subtle}) +call s:h("StatusLineNC", {"bg": s:bg_subtle, "fg": s:light_black}) +call s:h("VertSplit", {"bg": s:bg_subtle, "fg": s:bg_subtle}) +call s:h("Title", {"fg": s:blue}) +call s:h("Visual", {"bg": s:visual}) +call s:h("VisualNOS", {"bg": s:bg_subtle}) +call s:h("WarningMsg", {"fg": s:red}) +call s:h("WildMenu", {"fg": s:bg, "bg": s:norm}) +call s:h("Folded", {"fg": s:light_black}) +call s:h("FoldColumn", {"fg": s:bg_subtle}) +call s:h("DiffAdd", {"fg": s:green}) +call s:h("DiffDelete", {"fg": s:red}) +call s:h("DiffChange", {"fg": s:yellow}) +call s:h("DiffText", {"fg": s:blue}) +call s:h("SignColumn", {"fg": s:yellow}) + +if has("gui_running") + call s:h("SpellBad", {"gui": "underline", "sp": s:red}) + call s:h("SpellCap", {"gui": "underline", "sp": s:yellow}) + call s:h("SpellRare", {"gui": "underline", "sp": s:purple}) + call s:h("SpellLocal", {"gui": "underline", "sp": s:green}) +else + call s:h("SpellBad", {"cterm": "underline", "fg": s:red}) + call s:h("SpellCap", {"cterm": "underline", "fg": s:yellow}) + call s:h("SpellRare", {"cterm": "underline", "fg": s:purple}) + call s:h("SpellLocal", {"cterm": "underline", "fg": s:green}) +endif + +call s:h("Pmenu", {"fg": s:norm, "bg": s:bg_subtle}) +call s:h("PmenuSel", {"fg": s:white, "bg": s:blue}) +call s:h("PmenuSbar", {"fg": s:norm, "bg": s:bg_subtle}) +call s:h("PmenuThumb", {"fg": s:norm, "bg": s:bg_subtle}) +call s:h("TabLine", {"fg": s:norm, "bg": s:bg_subtle}) +call s:h("TabLineSel", {"fg": s:blue, "bg": s:bg_subtle, "gui": "bold", "cterm": "bold"}) +call s:h("TabLineFill", {"fg": s:norm, "bg": s:bg_subtle}) +call s:h("CursorColumn", {"bg": s:bg_subtle}) +call s:h("CursorLine", {"fg": s:norm, "bg": s:bg_subtle}) +call s:h("ColorColumn", {"bg": s:bg_subtle}) + +call s:h("MatchParen", {"bg": s:bg_subtle, "fg": s:norm}) +call s:h("qfLineNr", {"fg": s:light_black}) + +call s:h("htmlH1", {"bg": s:bg, "fg": s:norm}) +call s:h("htmlH2", {"bg": s:bg, "fg": s:norm}) +call s:h("htmlH3", {"bg": s:bg, "fg": s:norm}) +call s:h("htmlH4", {"bg": s:bg, "fg": s:norm}) +call s:h("htmlH5", {"bg": s:bg, "fg": s:norm}) +call s:h("htmlH6", {"bg": s:bg, "fg": s:norm}) + +hi link diffRemoved DiffDelete +hi link diffAdded DiffAdd + +" Signify, git-gutter +hi link SignifySignAdd LineNr +hi link SignifySignDelete LineNr +hi link SignifySignChange LineNr +hi! GitGutterAdd guifg=#10A778 ctermfg=2 +hi! GitGutterChange guifg=#A89C14 ctermfg=3 +hi! GitGutterDelete guifg=#C30771 ctermfg=1 +hi! GitGutterChangeDelete guifg=#C30771 ctermfg=1 + +" Fuzzy Search, Telescope & CtrlP +hi! CtrlPMatch ctermbg=235 ctermfg=250 guibg=NONE guifg=#5FD7A7 cterm=NONE gui=NONE +hi! TelescopeMatching guifg=#5FD7A7 guibg=#303030 ctermbg=NONE +highlight TelescopeSelection guifg=NONE gui=bold guibg=#303030 diff --git a/stow/vim/.vim/pack/my-plugins/start/ale b/stow/vim/.vim/pack/my-plugins/start/ale index adaa7f6..4fca382 160000 --- a/stow/vim/.vim/pack/my-plugins/start/ale +++ b/stow/vim/.vim/pack/my-plugins/start/ale @@ -1 +1 @@ -Subproject commit adaa7f6f62366e5ed8aa76e79ca74f32a3b196b3 +Subproject commit 4fca3824cc34f731cb5b3e51844698052c5f6c52 diff --git a/stow/vim/.vim/pack/my-plugins/start/ctrlp.vim b/stow/vim/.vim/pack/my-plugins/start/ctrlp.vim index 7c972cb..475a864 160000 --- a/stow/vim/.vim/pack/my-plugins/start/ctrlp.vim +++ b/stow/vim/.vim/pack/my-plugins/start/ctrlp.vim @@ -1 +1 @@ -Subproject commit 7c972cb19c8544c681ca345c64ec39e04f4651cc +Subproject commit 475a864e7f01dfc5c93965778417cc66e77f3dcc diff --git a/stow/vim/.vim/pack/my-plugins/start/vim-airline b/stow/vim/.vim/pack/my-plugins/start/vim-airline index 16c1638..6c704f4 160000 --- a/stow/vim/.vim/pack/my-plugins/start/vim-airline +++ b/stow/vim/.vim/pack/my-plugins/start/vim-airline @@ -1 +1 @@ -Subproject commit 16c1638f93f93fad41da8cb6eef2bcd8eed0a57a +Subproject commit 6c704f4b780e2b687dd21b24a19f598dde06dc22 diff --git a/stow/vim/.vim/pack/my-plugins/start/vim-dirvish b/stow/vim/.vim/pack/my-plugins/start/vim-dirvish index 3851bed..2ddd8ee 160000 --- a/stow/vim/.vim/pack/my-plugins/start/vim-dirvish +++ b/stow/vim/.vim/pack/my-plugins/start/vim-dirvish @@ -1 +1 @@ -Subproject commit 3851bedb7f191b9a4a5531000b6fc0a8795cc9bb +Subproject commit 2ddd8ee63d6066ae910b29285d9786cbd0226657 diff --git a/stow/vim/.vim/pack/my-plugins/start/vim-eunuch b/stow/vim/.vim/pack/my-plugins/start/vim-eunuch index 8fb3904..6c6af39 160000 --- a/stow/vim/.vim/pack/my-plugins/start/vim-eunuch +++ b/stow/vim/.vim/pack/my-plugins/start/vim-eunuch @@ -1 +1 @@ -Subproject commit 8fb3904be27b6b60d086f87c2570085902414069 +Subproject commit 6c6af39aa0a25223389607338ae965c5dfc7c972 diff --git a/stow/vim/.vim/pack/my-plugins/start/vim-gitgutter b/stow/vim/.vim/pack/my-plugins/start/vim-gitgutter index e801371..7b0b509 160000 --- a/stow/vim/.vim/pack/my-plugins/start/vim-gitgutter +++ b/stow/vim/.vim/pack/my-plugins/start/vim-gitgutter @@ -1 +1 @@ -Subproject commit e801371917e52805a4ceb1e93f55ed1fba712f82 +Subproject commit 7b0b5098e3e57be86bb96cfbf2b8902381eef57c diff --git a/stow/vim/.vim/pack/my-plugins/start/vim-sensible b/stow/vim/.vim/pack/my-plugins/start/vim-sensible index 3e878ab..0ce2d84 160000 --- a/stow/vim/.vim/pack/my-plugins/start/vim-sensible +++ b/stow/vim/.vim/pack/my-plugins/start/vim-sensible @@ -1 +1 @@ -Subproject commit 3e878abfd6ddc6fb5dba48b41f2b72c3a2f8249f +Subproject commit 0ce2d843d6f588bb0c8c7eec6449171615dc56d9 diff --git a/stow/vim/.vimrc b/stow/vim/.vimrc index 83fbd03..2d32bbe 100644 --- a/stow/vim/.vimrc +++ b/stow/vim/.vimrc @@ -81,8 +81,8 @@ let g:ale_linters_ignore = {'python': ['mypy']} " mypy is too slow and doesn't " set background=light -silent! colo tempus_totus -let g:airline_theme='tempus' +silent! colo mono +let g:airline_theme='mono' set hlsearch syntax enable -- cgit v1.2.3