vim-monochrome

My fork of github.com/fxn/vim-monochrome
git clone https://git.sr.ht/~jbauer/vim-monochrome
Log | Files | Refs | README | LICENSE

commit bfa919c171970f222d2cf2171cecc66bc308e10c
parent 85f2e8d0dc3d2f515dad2172cc269fc62d74f3fa
Author: Jake Bauer <jbauer@paritybit.ca>
Date:   Mon, 27 Dec 2021 15:24:39 -0500

Colour Scheme Overhaul

This turns vim-monochrome into a truly single-colour colourscheme. The
majority of the colours used are shades of grey with some colours pulled
from the user's terminal colour configuration in cases where it would be
useful (HTML/Markdown links, diffs, etc).

Also added was syntax highlighting for spelling, HTML, and Gemini.

Diffstat:
Mcolors/monochrome.vim | 251+++++++++++++++++++++++++++++++++----------------------------------------------
Mimg/vim-monochrome.png | 0
2 files changed, 106 insertions(+), 145 deletions(-)

diff --git a/colors/monochrome.vim b/colors/monochrome.vim @@ -1,30 +1,30 @@ -" Vim color scheme +" monochrome.vim " -" Name: monochrome.vim -" Maintainer: Xavier Noria <fxn@hashref.com> -" License: MIT -" Modified by: Jake Bauer <jbauer@paritybit.ca> +" Original Author: Xavier Noria <fxn@hashref.com> +" License: MIT +" Modified By: Jake Bauer <jbauer@paritybit.ca> set background=dark hi clear if exists('syntax_on') - syntax reset + syntax reset endif let g:colors_name = 'monochrome' -let s:white = ['White', 15] -let s:black = ['#0e1111', 16] -let s:bgray = ['#181818', 233] -let s:lgray = ['LightGray', 255] -let s:cgray = ['#737373', 243] -let s:dgray = ['DarkGray', 248] -let s:mpurp = ['#8C7799', 97] -let s:red = ['#b6403a', 160] -let s:green = ['#478226', 28] - -let s:default_fg = s:lgray +let s:black = ['#111111', 0] +let s:red = ['#994444', 1] +let s:green = ['#449944', 2] +let s:yellow = ['#999444', 3] +let s:cyan = ['#449999', 6] +let s:white = ['#DDDDDD', 7] +let s:accent = ['#5F5F5F', 59] +let s:cursorline = ['#262626', 235] +let s:comment = ['#6C6C6C', 242] +let s:faded = ['#A8A8A8', 248] + +let s:default_fg = s:white let s:default_bg = s:black let s:italic = 'italic' @@ -38,97 +38,89 @@ let s:default_str = '' let s:comment_attr = s:italic function! s:hi(...) - let group = a:1 - let fg = get(a:, 2, s:default_fg) - let bg = get(a:, 3, s:default_bg) - let attr = get(a:, 4, s:default_str) - - let cmd = ['hi', group] - - if fg != s:default_lst - call add(cmd, 'guifg='.fg[0]) - call add(cmd, 'ctermfg='.fg[1]) - endif - - if bg != s:default_lst && bg != s:default_bg - call add(cmd, 'guibg='.bg[0]) - call add(cmd, 'ctermbg='.bg[1]) - endif - - if attr != s:default_str - call add(cmd, 'gui='.attr) - call add(cmd, 'cterm='.attr) - endif - - exec join(cmd, ' ') + let group = a:1 + let fg = get(a:, 2, s:default_fg) + let bg = get(a:, 3, s:default_bg) + let attr = get(a:, 4, s:default_str) + + let cmd = ['hi', group] + + if fg != s:default_lst + call add(cmd, 'guifg='.fg[0]) + call add(cmd, 'ctermfg='.fg[1]) + endif + + if bg != s:default_lst && bg != s:default_bg + call add(cmd, 'guibg='.bg[0]) + call add(cmd, 'ctermbg='.bg[1]) + endif + + if attr != s:default_str + call add(cmd, 'gui='.attr) + call add(cmd, 'cterm='.attr) + endif + + exec "hi clear " group + exec join(cmd, ' ') endfunction -" " --- Vim interface ------------------------------------------------------------ -" - call s:hi('Normal') -call s:hi('Cursor', s:black, s:lgray) -call s:hi('CursorLine', s:default_lst, s:bgray, s:none) +call s:hi('Cursor', s:black, s:white) +call s:hi('CursorLine', s:default_lst, s:cursorline, s:none) call s:hi('CursorLineNr', s:white, s:default_bg, s:bold) -call s:hi('ColorColumn', [], s:bgray) -call s:hi('Search', s:white, s:mpurp) -call s:hi('Visual', s:white, s:mpurp) +call s:hi('ColorColumn', s:default_lst, s:cursorline) +call s:hi('Search', s:white, s:accent) +call s:hi('Visual', s:white, s:accent) call s:hi('ErrorMsg', s:white, s:red) " Tildes at the bottom of a buffer, etc. -call s:hi('NonText', s:dgray) +call s:hi('NonText', s:faded) " Folding. -call s:hi('FoldColumn', s:dgray) +call s:hi('FoldColumn', s:faded) call s:hi('Folded') " Line numbers gutter. -call s:hi('LineNr', s:dgray) +call s:hi('LineNr', s:faded) " Small arrow used for tabs. -call s:hi('SpecialKey', s:mpurp, s:default_bg, s:bold) +call s:hi('SpecialKey', s:accent, s:default_bg, s:bold) " File browsers. call s:hi('Directory', s:white, s:default_bg, s:bold) " Help. call s:hi('helpSpecial') -call s:hi('helpHyperTextJump', s:mpurp, s:default_bg, s:underline) +call s:hi('helpHyperTextJump', s:accent, s:default_bg, s:underline) call s:hi('helpNote') " Popup menu. -call s:hi('Pmenu', s:white, s:mpurp) -call s:hi('PmenuSel', s:mpurp, s:white) +call s:hi('Pmenu', s:white, s:accent) +call s:hi('PmenuSel', s:accent, s:white) " Notes. -call s:hi('Todo', s:lgray, s:mpurp, s:bold) +call s:hi('Todo', s:white, s:default_bg, s:bold) " Signs. call s:hi('SignColumn') -" " --- Programming languages ---------------------------------------------------- -" - call s:hi('Statement', s:white, s:default_bg, s:bold) call s:hi('PreProc', s:white, s:default_bg, s:bold) -call s:hi('String', s:mpurp) -call s:hi('Comment', s:cgray, s:default_bg, s:comment_attr) -call s:hi('Constant', s:mpurp, s:default_bg, s:bold) -call s:hi('Number', s:mpurp) +call s:hi('String', s:accent) +call s:hi('Comment', s:comment, s:default_bg, s:comment_attr) +call s:hi('Constant', s:accent, s:default_bg, s:bold) +call s:hi('Number', s:accent) call s:hi('Type', s:white, s:default_bg, s:bold) call s:hi('Function', s:white) -call s:hi('Identifier') +call s:hi('Identifier', s:default_fg, s:default_bg, s:none) call s:hi('Special') -call s:hi('MatchParen', s:lgray, s:black, s:underline) +call s:hi('MatchParen', s:white, s:black, s:underline) +call s:hi('Error', s:red, s:black, s:bold) - -" " --- VimL --------------------------------------------------------------------- -" - call s:hi('vimOption') call s:hi('vimGroup') call s:hi('vimHiClear') @@ -141,26 +133,18 @@ call s:hi('vimHiCTermFgBg') call s:hi('vimSynType') hi link vimCommentTitle Comment - -" " --- Ruby --------------------------------------------------------------------- -" - call s:hi('rubyConstant') -call s:hi('rubySharpBang', s:cgray) -call s:hi('rubyStringDelimiter', s:mpurp) -call s:hi('rubyStringEscape', s:mpurp) -call s:hi('rubyRegexpEscape', s:mpurp) -call s:hi('rubyRegexpAnchor', s:mpurp) -call s:hi('rubyRegexpSpecial', s:mpurp) - +call s:hi('rubySharpBang', s:comment) +call s:hi('rubyStringDelimiter', s:accent) +call s:hi('rubyStringEscape', s:accent) +call s:hi('rubyRegexpEscape', s:accent) +call s:hi('rubyRegexpAnchor', s:accent) +call s:hi('rubyRegexpSpecial', s:accent) -" " --- Elixir ------------------------------------------------------------------- -" - call s:hi('elixirAlias', s:default_fg, s:default_bg, s:none) -call s:hi('elixirDelimiter', s:mpurp) +call s:hi('elixirDelimiter', s:accent) call s:hi('elixirSelf', s:default_fg, s:default_bg, s:none) " For ||, ->, etc. @@ -175,77 +159,54 @@ hi link elixirDocString String hi link elixirDocTest String hi link elixirStringDelimiter String - -" " --- Perl --------------------------------------------------------------------- -" - -call s:hi('perlSharpBang', s:cgray) -call s:hi('perlStringStartEnd', s:mpurp) -call s:hi('perlStringEscape', s:mpurp) -call s:hi('perlMatchStartEnd', s:mpurp) +call s:hi('perlSharpBang', s:comment) +call s:hi('perlStringStartEnd', s:accent) +call s:hi('perlStringEscape', s:accent) +call s:hi('perlMatchStartEnd', s:accent) - -" " --- Python ------------------------------------------------------------------- -" - -call s:hi('pythonEscape', s:mpurp) +call s:hi('pythonEscape', s:accent) - -" " --- JavaScript --------------------------------------------------------------- -" - call s:hi('javaScriptFunction', s:white, s:default_bg, s:bold) - -" " --- Diffs -------------------------------------------------------------------- -" - -call s:hi('diffFile', s:cgray) -call s:hi('diffNewFile', s:cgray) -call s:hi('diffIndexLine', s:cgray) -call s:hi('diffLine', s:cgray) -call s:hi('diffSubname', s:cgray) -call s:hi('diffAdded', s:white, s:green) -call s:hi('diffRemoved', s:white, s:red) - +call s:hi('diffFile', s:faded) +call s:hi('diffNewFile', s:faded) +call s:hi('diffIndexLine', s:comment) +call s:hi('diffLine', s:yellow) +call s:hi('diffSubname', s:faded) +call s:hi('diffAdded', s:green) +call s:hi('diffRemoved', s:red) -" " --- Markdown ----------------------------------------------------------------- -" - call s:hi('Title', s:white, s:default_bg, s:bold) call s:hi('markdownHeadingDelimiter', s:white, s:default_bg, s:bold) call s:hi('markdownHeadingRule', s:white, s:default_bg, s:bold) -call s:hi('markdownLinkText', s:mpurp, s:default_bg, s:underline) - - -" -" --- vim-fugitive ------------------------------------------------------------- -" - -call s:hi('gitcommitComment', s:default_fg, s:default_bg, s:none) -call s:hi('gitcommitOnBranch', s:default_fg, s:default_bg, s:none) -call s:hi('gitcommitBranch', s:sblue, s:default_bg, s:none) -call s:hi('gitcommitHeader', s:white, s:default_bg, s:bold) -call s:hi('gitcommitSelected', s:default_fg, s:default_bg, s:none) -call s:hi('gitcommitDiscarded', s:default_fg, s:default_bg, s:none) -call s:hi('gitcommitSelectedType', s:default_fg, s:default_bg, s:none) -call s:hi('gitcommitDiscardedType', s:default_fg, s:default_bg, s:none) - - -" -" --- NeoMake ------------------------------------------------------------------ -" - -call s:hi('NeomakeMessageSign') -call s:hi('NeomakeWarningSign', s:sblue) -call s:hi('NeomakeErrorSign', s:yellow) -call s:hi('NeomakeInfoSign') -call s:hi('NeomakeError', s:yellow) -call s:hi('NeomakeInfo', s:default_fg, s:default_bg, s:bold) -call s:hi('NeomakeMessage') -call s:hi('NeomakeWarning', s:yellow) +call s:hi('markdownLinkText', s:cyan, s:default_bg, s:underline) + +" --- HTML --------------------------------------------------------------------- +call s:hi('htmlLink', s:cyan, s:default_bg, s:underline) +call s:hi('htmlArg', s:default_fg, s:default_bg) + +" --- Gemini ------------------------------------------------------------------- +" Bsed off of the following plugin: https://tildegit.org/sloum/gemini-vim-syntax +call s:hi('gmiHeader', s:white, s:default_bg, s:bold) +call s:hi('gmiLinkStart', s:white, s:default_bg, s:bold) +call s:hi('gmiLinkURL', s:cyan, s:default_bg, s:underline) +call s:hi('gmiLinkTitle', s:accent, s:default_bg, s:none) +call s:hi('gmiMono', s:accent, s:default_bg, s:bold) +call s:hi('gmiQuoteLine', s:accent, s:default_bg, s:bold) + +" --- Spelling ----------------------------------------------------------------- +call s:hi('SpellBad', s:red, s:default_bg, s:bold, s:underline) +call s:hi('SpellCap', s:white, s:default_bg, s:bold) +call s:hi('SpellLocal', s:default_fg, s:default_bg, s:none) +call s:hi('SpellRare', s:default_fg, s:default_bg, s:none) + +" --- Diff Mode ---------------------------------------------------------------- +call s:hi('DiffAdd', s:green, s:default_bg) +call s:hi('DiffDelete', s:red, s:default_bg) +call s:hi('DiffChange', s:white, s:default_bg) +call s:hi('DiffText', s:yellow, s:default_bg) diff --git a/img/vim-monochrome.png b/img/vim-monochrome.png Binary files differ.