a duotonic color scheme

Compare changes

Choose any two refs to compare.

+1
.gitignore
··· 1 + result
-48
README.md
··· 1 - # vim-colors-plain 2 - 3 - This is a fork of [vim-colors-off][] which is being developed based on my 4 - personal taste. 5 - 6 - ![Screenshot](screenshots/plain-dark.png) 7 - ![Screenshot](screenshots/plain-light.png) 8 - 9 - ## Motivation 10 - 11 - Minimalistic colorscheme which uses bold to highlight keywords and a 12 - distinguished color for constant literals (string, numbers, JSX tags). 13 - 14 - ## Installation & Usage 15 - 16 - With [vim-plug][] you add this to the `.vimrc`: 17 - 18 - ``` 19 - Plug 'andreypopp/vim-colors-plain' 20 - ``` 21 - 22 - Then: 23 - 24 - ``` 25 - set background=light " Set to dark for a dark variant 26 - colorscheme plain 27 - ``` 28 - 29 - ## FAQ 30 - 31 - - What terminal emulator is shown on the screenshots? 32 - 33 - This is [kitty][]. Fast and highly configurable. 34 - 35 - - Is this Vim or Neovim on the screenshots and why? 36 - 37 - This is Neovim. 38 - 39 - - What font is being used on the screenshots? 40 - 41 - [Pragmata Pro][] which is not free but worth the money paid. [Iosevka][] is 42 - another great font I used before which is similar in feel. 43 - 44 - [vim-colors-off]: https://github.com/pbrisbin/vim-colors-off 45 - [vim-plug]: https://github.com/junegunn/vim-plug 46 - [kitty]: https://github.com/kovidgoyal/kitty 47 - [Pragmata Pro]: https://www.fsd.it/shop/fonts/pragmatapro/ 48 - [Iosevka]: https://github.com/be5invis/Iosevka
+170 -35
colors/plain.vim
··· 40 40 let s:light_blue = { "gui": "#B6D6FD", "cterm": "4" } 41 41 let s:dark_cyan = { "gui": "#20A5BA", "cterm": "6" } 42 42 let s:light_cyan = { "gui": "#4FB8CC", "cterm": "6" } 43 - let s:dark_green = { "gui": "#10A778", "cterm": "2" } 44 - let s:light_green = { "gui": "#5FD7A7", "cterm": "2" } 43 + let s:dark_green = { "gui": "#10A778", "cterm": "6" } 44 + let s:light_green = { "gui": "#5FD7A7", "cterm": "6" } 45 45 let s:dark_purple = { "gui": "#523C79", "cterm": "5" } 46 46 let s:light_purple = { "gui": "#6855DE", "cterm": "5" } 47 47 let s:light_yellow = { "gui": "#F3E430", "cterm": "3" } ··· 60 60 let s:yellow = s:light_yellow 61 61 let s:visual = s:subtle_black 62 62 let s:cursor_line = s:subtle_black 63 - let s:status_line = s:medium_gray 64 - let s:status_line_nc = s:light_black 63 + let s:status_line = s:lighter_black 64 + let s:status_line_nc = s:subtle_black 65 65 let s:constant = s:light_green 66 66 let s:comment = s:lighter_black 67 67 let s:selection = s:light_purple ··· 79 79 let s:yellow = s:dark_yellow 80 80 let s:visual = s:light_blue 81 81 let s:cursor_line = s:medium_gray 82 - let s:status_line = s:medium_gray 83 - let s:status_line_nc = s:light_gray 82 + let s:status_line = s:lighter_gray 83 + let s:status_line_nc = s:lighter_black 84 84 let s:constant = s:dark_blue 85 85 let s:comment = s:light_gray 86 86 let s:selection = s:light_yellow ··· 99 99 \ "cterm=" (has_key(a:style, "cterm") ? a:style.cterm : "NONE") 100 100 endfunction 101 101 102 - call s:h("Normal", {"bg": s:bg, "fg": s:norm}) 103 - call s:h("Noise", {"bg": s:bg, "fg": s:norm_subtle}) 102 + call s:h("firstAccent", {"fg": s:cyan}) 103 + call s:h("secondAccent", {"fg": s:purple}) 104 + 105 + call s:h("Normal", {"fg": s:norm,}) 106 + call s:h("Noise", {"fg": s:norm_subtle}) 104 107 call s:h("Cursor", {"bg": s:green, "fg": s:norm}) 105 108 call s:h("Comment", {"fg": s:comment, "cterm": "italic"}) 106 109 call s:h("Function", {"fg": s:norm, "cterm": "bold"}) 107 110 108 - call s:h("Constant", {"bg": s:bg, "fg": s:constant}) 111 + hi! link Constant firstAccent 109 112 hi! link Character Constant 110 113 hi! link Number Constant 111 114 hi! link Boolean Constant ··· 116 119 hi! link Identifier Normal 117 120 118 121 "hi! link Statement Normal 119 - call s:h("Statement", {"bg": s:bg, "fg": s:norm, "cterm": "bold"}) 122 + call s:h("Statement", {"fg": s:norm, "cterm": "bold"}) 120 123 hi! link Conditonal Statement 121 124 hi! link Repeat Statement 122 125 hi! link Label Statement ··· 132 135 hi! link PreCondit PreProc 133 136 134 137 "call s:h("Type", {"fg": s:purple}) 135 - hi! link Type Normal 138 + hi! link Type secondAccent 136 139 hi! link StorageClass Type 137 - hi! link Structure Type 138 - hi! link Typedef Type 140 + hi! link Structure Noise 141 + hi! link Typedef Noise 139 142 140 143 "call s:h("Special", {"fg": s:pink}) 141 144 hi! link Special StatusLine ··· 149 152 150 153 call s:h("Underlined", {"fg": s:norm, "gui": "underline", "cterm": "underline"}) 151 154 call s:h("Ignore", {"fg": s:bg}) 152 - call s:h("Error", {"fg": s:red, "bg": s:bg, "cterm": "bold"}) 153 - call s:h("Todo", {"fg": s:actual_white, "bg": s:pink, "gui": "bold", "cterm": "bold"}) 155 + call s:h("Error", {"fg": s:red, "cterm": "bold"}) 156 + call s:h("Todo", {"fg": s:actual_white, "bg": s:black, "gui": "bold", "cterm": "bold"}) 154 157 call s:h("SpecialKey", {"fg": s:subtle_black}) 155 158 call s:h("NonText", {"fg": s:bg_very_subtle}) 156 159 call s:h("Directory", {"fg": s:dark_green}) 157 160 call s:h("ErrorMsg", {"fg": s:pink}) 158 161 call s:h("IncSearch", {"bg": s:selection, "fg": s:black}) 159 162 call s:h("Search", {"bg": s:selection, "fg": s:black}) 163 + call s:h("CurSearch", {"bg": s:selection, "fg": s:black}) 160 164 call s:h("MoreMsg", {"fg": s:medium_gray, "cterm": "bold", "gui": "bold"}) 161 165 hi! link ModeMsg MoreMsg 162 - call s:h("LineNr", {"fg": s:light_black}) 166 + call s:h("LineNr", {"fg": s:medium_gray}) 163 167 call s:h("CursorLineNr", {"fg": s:green, "bg": s:bg_very_subtle}) 164 168 call s:h("Question", {"fg": s:red}) 165 169 call s:h("VertSplit", {"bg": s:bg, "fg": s:bg_very_subtle}) ··· 174 178 call s:h("DiffDelete", {"fg": s:red}) 175 179 call s:h("DiffChange", {"fg": s:dark_yellow}) 176 180 call s:h("DiffText", {"fg": s:dark_green}) 177 - call s:h("SignColumn", {"fg": s:light_green}) 181 + call s:h("SignColumn", {"fg": s:medium_gray}) 178 182 179 183 if has("gui_running") 180 184 call s:h("SpellBad", {"gui": "underline", "sp": s:red}) ··· 188 192 call s:h("SpellLocal", {"cterm": "underline", "fg": s:dark_green}) 189 193 endif 190 194 191 - """ Help 192 - hi link helpHyperTextEntry Title 193 - hi link helpHyperTextJump String 194 - 195 195 """ StatusLine 196 - 197 - call s:h("StatusLine", {"bg": s:bg, "fg": s:status_line}) 198 - call s:h("StatusLineNC", {"cterm": "underline", "bg": s:bg, "fg": s:status_line_nc}) 196 + call s:h("StatusLine", {"fg": s:status_line}) 197 + call s:h("StatusLineNC", {"fg": s:status_line_nc}) 199 198 200 199 " Those are not standard but are useful to emphasis different parts of the 201 200 " status line. ··· 215 214 call s:h("ColorColumn", {"bg": s:bg_subtle}) 216 215 217 216 call s:h("MatchParen", {"bg": s:bg_very_subtle, "fg": s:norm}) 218 - call s:h("qfLineNr", {"fg": s:medium_gray}) 217 + hi link qfLineNr secondAccent 218 + hi link qfFileName firstAccent 219 + 220 + call s:h("htmlH1", {"fg": s:norm}) 221 + call s:h("htmlH2", {"fg": s:norm}) 222 + call s:h("htmlH3", {"fg": s:norm}) 223 + call s:h("htmlH4", {"fg": s:norm}) 224 + call s:h("htmlH5", {"fg": s:norm}) 225 + call s:h("htmlH6", {"fg": s:norm}) 219 226 220 - call s:h("htmlH1", {"bg": s:bg, "fg": s:norm}) 221 - call s:h("htmlH2", {"bg": s:bg, "fg": s:norm}) 222 - call s:h("htmlH3", {"bg": s:bg, "fg": s:norm}) 223 - call s:h("htmlH4", {"bg": s:bg, "fg": s:norm}) 224 - call s:h("htmlH5", {"bg": s:bg, "fg": s:norm}) 225 - call s:h("htmlH6", {"bg": s:bg, "fg": s:norm}) 227 + call s:h("htmlBold", {"fg": s:norm}) 228 + call s:h("htmlItalic", {"fg": s:norm}) 229 + call s:h("htmlEndTag", {"fg": s:norm}) 230 + call s:h("htmlTag", {"fg": s:norm}) 231 + call s:h("htmlTagName", {"fg": s:norm}) 232 + call s:h("htmlArg", {"fg": s:norm}) 233 + call s:h("htmlError", {"fg": s:red}) 234 + 235 + " JavaScript highlighting 236 + " 237 + call s:h("javaScript", {"bg": s:bg, "fg": s:norm}) 238 + call s:h("javaScriptBraces", {"bg": s:bg, "fg": s:norm}) 239 + call s:h("javaScriptNumber", {"bg": s:bg, "fg": s:green}) 226 240 227 241 hi link diffRemoved DiffDelete 228 242 hi link diffAdded DiffAdd 229 243 244 + hi link TSAnnotation secondAccent 245 + " unstable for now: 246 + hi link TSAttribute secondAccent 247 + hi link TSBoolean Constant 248 + hi link TSCharacter Constant 249 + hi link TSComment Comment 250 + hi link TSConstructor Normal 251 + hi link TSConditional Normal 252 + hi link TSConstant Constant 253 + hi link TSConstBuiltin secondAccent 254 + hi link TSConstMacro secondAccent 255 + hi link TSError Error 256 + hi link TSException Error 257 + hi link TSField Normal 258 + hi link TSFloat Constant 259 + hi link TSFunction Normal 260 + hi link TSFuncBuiltin Noise 261 + hi link TSFuncMacro secondAccent 262 + hi link TSInclude Noise 263 + hi link TSKeyword Noise 264 + hi link TSKeywordFunction Noise 265 + hi link TSLabel Noise 266 + hi link TSMethod Normal 267 + hi link TSNamespace Noise 268 + hi link TSNone Noise 269 + hi link TSNumber Constant 270 + hi link TSOperator Normal 271 + hi link TSParameter Statement 272 + hi link TSParameterReference Statement 273 + hi link TSProperty TSField 274 + hi link TSPunctDelimiter Noise 275 + hi link TSPunctBracket Noise 276 + hi link TSPunctSpecial Noise 277 + hi link TSRepeat Normal 278 + hi link TSString Constant 279 + hi link TSStringRegex secondAccent 280 + hi link TSStringEscape secondAccent 281 + hi link TSStringSpecial secondAccent 282 + hi link TSTag Statement 283 + hi link TSTagDelimiter Noise 284 + hi link TSText Normal 285 + hi link TSEmphasis Statement 286 + hi link TSUnderline Underlined 287 + hi link TSStrike Underlined 288 + hi link TSTitle Statement 289 + hi link TSLiteral Noise 290 + hi link TSURI Constant 291 + hi link TSType secondAccent 292 + hi link TSTypeBuiltin secondAccent 293 + hi link TSVariable Normal 294 + hi link TSVariableBuiltin Normal 295 + 296 + " nvim-lsp diagnostics 297 + hi link LspDiagnosticsDefaultError Error 298 + hi link LspDiagnosticsDefaultWarning WarningMsg 299 + hi link LspDiagnosticsDefaultInformation Noise 300 + hi link LspDiagnosticsDefaultHint Constant 301 + 230 302 " Signify, git-gutter 231 303 hi link SignifySignAdd LineNr 232 304 hi link SignifySignDelete LineNr ··· 238 310 239 311 hi link jsFlowTypeKeyword Statement 240 312 hi link jsFlowImportType Statement 241 - hi link jsFunction Statement 242 - hi link jsGlobalObjects Normal 313 + hi link jsFunction Function 314 + hi link jsGlobalObjects Noise 243 315 hi link jsGlobalNodeObjects Normal 244 - hi link jsArrowFunction Noise 316 + hi link jsSwitchCase Constant 317 + 318 + call s:h("jsSpreadOperator ", {"bg": s:bg, "fg": s:selection}) 319 + hi link jsReturn jsSpreadOperator 320 + hi link jsExport jsSpreadOperator 321 + 322 + call s:h("rustModPath ", {"fg": s:lightest_gray}) 323 + hi link rustMacro secondAccent 324 + hi link rustKeyword Noise 325 + hi link rustDerive secondAccent 326 + hi link rustDeriveTrait secondAccent 327 + hi link rustAttribute secondAccent 328 + hi link rustLifetime secondAccent 329 + 330 + hi link schemeSyntax Normal 331 + hi link schemeParentheses Noise 332 + hi link schemeIdentifier Noise 333 + 334 + hi link lispParen Noise 335 + hi link lispSymbol Noise 336 + 337 + hi link shCommandSub secondAccent 338 + 339 + hi link cFormat secondAccent 340 + 341 + hi link nixBuiltin secondAccent 342 + hi link nixNamespacedBuiltin secondAccent 343 + 344 + hi link awkPatterns secondAccent 345 + hi link awkVariables Normal 346 + hi link awkOperator Normal 347 + hi link awkExpression Noise 348 + hi link awkArrayElement Noise 349 + hi link awkFieldVars firstAccent 350 + hi link awkSpecialPrintf secondAccent 351 + hi link awkSpecialCharacter Noise 352 + 353 + hi link sqlSpecial firstAccent 354 + hi link sqlKeyword secondAccent 355 + 356 + hi link helpExample Normal 357 + hi link helpCommand secondAccent 358 + hi link helpBacktick secondAccent 359 + hi link helpSpecial Normal 360 + hi link helpUrl secondAccent 361 + hi link helpHyperTextEntry Title 362 + hi link helpHyperTextJump String 363 + 364 + 245 365 hi link StorageClass Statement 246 366 247 - call s:h("xmlTag", {"bg": s:bg, "fg": s:constant}) 367 + hi link elmType Type 368 + 369 + hi link xmlTag Constant 248 370 hi link xmlTagName xmlTag 249 371 hi link xmlEndTag xmlTag 250 372 hi link xmlAttrib xmlTag ··· 261 383 hi link markdownCodeDelimiter Constant 262 384 hi link markdownHeadingDelimiter Constant 263 385 386 + call s:h("cssBraces", {"bg": s:bg, "fg": s:selection}) 387 + hi link cssTextProp Noise 388 + hi link cssTagName Normal 389 + 390 + 391 + " leap-nvim support 392 + hi link LeapMatch Normal 393 + hi link LeapLabelPrimary Normal 394 + hi link LeapLabelSecondary Normal 395 + hi link LeapBackdrop Noise 396 + 397 + " lsp ui 398 + hi link FloatBorder Noise
+27
flake.lock
··· 1 + { 2 + "nodes": { 3 + "nixpkgs": { 4 + "locked": { 5 + "lastModified": 1632176121, 6 + "narHash": "sha256-N2oSOhbW38rbc53R1R8qXC/Xstht1PIsAcTzJfmCpTc=", 7 + "owner": "NixOS", 8 + "repo": "nixpkgs", 9 + "rev": "3397f0ede9ea2ded1f8b6fa689dda71a7a67b806", 10 + "type": "github" 11 + }, 12 + "original": { 13 + "owner": "NixOS", 14 + "ref": "nixos-21.05", 15 + "repo": "nixpkgs", 16 + "type": "github" 17 + } 18 + }, 19 + "root": { 20 + "inputs": { 21 + "nixpkgs": "nixpkgs" 22 + } 23 + } 24 + }, 25 + "root": "root", 26 + "version": 7 27 + }
+48
flake.nix
··· 1 + { 2 + 3 + description = "Duotonic colorscheme for {neo,}vim"; 4 + 5 + inputs = { 6 + nixpkgs.url = "github:NixOS/nixpkgs/nixos-21.05"; 7 + }; 8 + 9 + outputs = 10 + { self 11 + , nixpkgs 12 + , ... 13 + } @ rest: 14 + let 15 + supportedSystems = [ "x86_64-linux" "x86_64-darwin" ]; 16 + 17 + forAllSystems = nixpkgs.lib.genAttrs supportedSystems; 18 + 19 + nixpkgsFor = forAllSystems (system: 20 + import nixpkgs { 21 + inherit system; 22 + overlays = [ self.overlay ]; 23 + } 24 + ); 25 + in 26 + { 27 + 28 + overlay = final: prev: rec { 29 + vim-colors-plain = 30 + with final; pkgs.vimUtils.buildVimPlugin { 31 + pname = "vim-colors-plain"; 32 + version = "0.1.0"; 33 + src = ./.; 34 + }; 35 + }; 36 + 37 + packages = forAllSystems (system: 38 + { 39 + inherit (nixpkgsFor."${system}") vim-colors-plain; 40 + } 41 + ); 42 + 43 + defaultPackage = 44 + forAllSystems (system: self.packages."${system}".vim-colors-plain); 45 + 46 + }; 47 + 48 + }
+28
readme.md
··· 1 + ![img](https://cdn.oppi.li/bt.png) 2 + 3 + vim-colors-plain is a duotonic color scheme, the two accents 4 + being cyan and pink by default (configurable). 5 + 6 + i would suggesting installing manually by cloning into your 7 + plugin directory or dropping `colors/plain.vim` into one of 8 + the following directories: 9 + 10 + - vim: `.vim/plugin` 11 + - neovim: `.config/nvim/plugin` 12 + 13 + if you use nix/nixos, this repository provides a vim plugin 14 + as a flake output, that you can import via 15 + `builtins.getFlake`. 16 + 17 + ``` 18 + vim-colors-plain = { 19 + url = "github:oppiliappan/vim-colors-plain"; 20 + inputs.nixpkgs.follows = "nixpkgs"; 21 + }; 22 + 23 + . 24 + . 25 + . 26 + 27 + programs.neovim.plugins = [ pkgs.vim-colors-plain ]; 28 + ```
screenshots/plain-dark.png

This is a binary file and will not be displayed.

screenshots/plain-light.png

This is a binary file and will not be displayed.