Switch from gruvbox to PaperColor

This commit is contained in:
Anthony Rose 2019-07-11 09:46:57 +01:00
parent 5b2826d221
commit aced103ceb
22 changed files with 3049 additions and 4027 deletions

View file

@ -1,4 +0,0 @@
.DS_Store
node_modules
npm-debug.log*
yarn-error.log*

View file

@ -1,6 +0,0 @@
# Change Log
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
<a name="3.0.1-rc.0"></a>
## [3.0.1-rc.0](https://github.com/morhetz/gruvbox/compare/v2.0.0...v3.0.1-rc.0) (2018-05-16)

View file

@ -1,113 +0,0 @@
<p align="center"><img src="http://svgur.com/i/3Dp.svg"></p>
gruvbox is heavily inspired by [badwolf][], [jellybeans][] and [solarized][].
Designed as a bright theme with pastel 'retro groove' colors and light/dark mode switching in the way of [solarized][]. The main focus when developing gruvbox is to keep colors easily distinguishable, contrast enough and still pleasant for the eyes.
[badwolf]: https://github.com/sjl/badwolf
[jellybeans]: https://github.com/nanotech/jellybeans.vim
[solarized]: http://ethanschoonover.com/solarized
Attention
---------
1. [Read this first](https://github.com/morhetz/gruvbox/wiki/Terminal-specific)
2. Typeface from gallery is [Fantasque Sans Mono](https://github.com/belluzj/fantasque-sans)
3. Typeface from screenshots below is [Fira Mono](http://www.carrois.com/fira-4-1/)
Screenshots
-----------
Refer [Gallery][] for more syntax-specific screenshots.
[Gallery]: https://github.com/morhetz/gruvbox/wiki/Gallery
### Dark mode
![Screenshot Dark](http://i.imgur.com/GkIl8Fn.png)
### Light mode
![Screenshot Light](http://i.imgur.com/X75niEa.png)
### Airline theme
![Screenshot Airline](http://i.imgur.com/wRQceUR.png)
Palette
-------
### Dark mode
![Palette Dark](http://i.imgur.com/wa666xg.png)
### Light mode
![Palette Light](http://i.imgur.com/49qKyYW.png)
Contrast options
----------------
Refer [wiki section][] for contrast configuration and other options.
[wiki section]: https://github.com/morhetz/gruvbox/wiki/Configuration#ggruvbox_contrast_dark
![Contrast Options](http://i.imgur.com/5MSbe6T.png)
Documentation
-------------
Please check [wiki][] for installation details, terminal-specific setup, troubleshooting, configuration options and others.
[wiki]: https://github.com/morhetz/gruvbox/wiki
Features
--------
* Lots of style-customization options (contrast, color invertion, italics usage etc.)
* Extended filetype highlighting: Html, Xml, Vim, Clojure, C, Python, JavaScript, TypeScript, PureScript, CoffeeScript, Ruby, Objective-C, Go, Lua, MoonScript, Java, Markdown, Haskell, Elixir
* Supported plugins: [EasyMotion][], [vim-sneak][], [Indent Guides][], [indentLine][], [Rainbow Parentheses][], [Airline][], [Lightline][], [GitGutter][], [Signify][], [ShowMarks][], [Signature][], [Syntastic][], [Ale][], [CtrlP][], [Startify][], [NERDTree][], [Dirvish][]
[EasyMotion]: https://github.com/Lokaltog/vim-easymotion
[vim-sneak]: https://github.com/justinmk/vim-sneak
[Indent Guides]: https://github.com/nathanaelkane/vim-indent-guides
[indentLine]: https://github.com/Yggdroot/indentLine
[Rainbow Parentheses]: https://github.com/kien/rainbow_parentheses.vim
[Airline]: https://github.com/bling/vim-airline
[Lightline]: https://github.com/itchyny/lightline.vim
[GitGutter]: https://github.com/airblade/vim-gitgutter
[Signify]: https://github.com/mhinz/vim-signify
[ShowMarks]: http://www.vim.org/scripts/script.php?script_id=152
[Signature]: https://github.com/kshenoy/vim-signature
[Syntastic]: https://github.com/scrooloose/syntastic
[Ale]: https://github.com/w0rp/ale
[CtrlP]: https://github.com/kien/ctrlp.vim
[Startify]: https://github.com/mhinz/vim-startify
[NERDTree]: https://github.com/scrooloose/nerdtree
[Dirvish]: https://github.com/justinmk/vim-dirvish
Contributions
-------------
See [gruvbox-contrib][] repo for contributions, ports and extras.
[gruvbox-contrib]: https://github.com/morhetz/gruvbox-contrib
ToDo
----
* Filetype syntax highlighting (R, TeX, Swift, Erlang)
* Plugin support (Tagbar, VimPlug)
Self-Promotion
--------------
If you like gruvbox follow the repository on
[GitHub](https://github.com/morhetz/gruvbox) and vote for it on
[vim.org](http://www.vim.org/scripts/script.php?script_id=4349).
License
-------
[MIT/X11][]
[MIT/X11]: https://en.wikipedia.org/wiki/MIT_License

View file

@ -1,79 +0,0 @@
" -----------------------------------------------------------------------------
" File: gruvbox.vim
" Description: Retro groove color scheme for Airline
" Author: morhetz <morhetz@gmail.com>
" Source: https://github.com/morhetz/gruvbox
" Last Modified: 12 Aug 2017
" -----------------------------------------------------------------------------
let g:airline#themes#gruvbox#palette = {}
function! airline#themes#gruvbox#refresh()
let M0 = airline#themes#get_highlight('Identifier')
let accents_group = airline#themes#get_highlight('Special')
let modified_group = [M0[0], '', M0[2], '', '']
let warning_group = airline#themes#get_highlight2(['Normal', 'bg'], ['Question', 'fg'])
let error_group = airline#themes#get_highlight2(['Normal', 'bg'], ['WarningMsg', 'fg'])
let s:N1 = airline#themes#get_highlight2(['Normal', 'bg'], ['StatusLineNC', 'bg'])
let s:N2 = airline#themes#get_highlight2(['StatusLineNC', 'bg'], ['Pmenu', 'bg'])
let s:N3 = airline#themes#get_highlight2(['StatusLineNC', 'bg'], ['CursorLine', 'bg'])
let g:airline#themes#gruvbox#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
let g:airline#themes#gruvbox#palette.normal_modified = { 'airline_c': modified_group }
let g:airline#themes#gruvbox#palette.normal.airline_warning = warning_group
let g:airline#themes#gruvbox#palette.normal_modified.airline_warning = warning_group
let g:airline#themes#gruvbox#palette.normal.airline_error = error_group
let g:airline#themes#gruvbox#palette.normal_modified.airline_error = error_group
let s:I1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Identifier', 'fg'])
let s:I2 = s:N2
let s:I3 = airline#themes#get_highlight2(['Normal', 'fg'], ['Pmenu', 'bg'])
let g:airline#themes#gruvbox#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
let g:airline#themes#gruvbox#palette.insert_modified = g:airline#themes#gruvbox#palette.normal_modified
let g:airline#themes#gruvbox#palette.insert.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning
let g:airline#themes#gruvbox#palette.insert_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning
let g:airline#themes#gruvbox#palette.insert.airline_error = g:airline#themes#gruvbox#palette.normal.airline_error
let g:airline#themes#gruvbox#palette.insert_modified.airline_error = g:airline#themes#gruvbox#palette.normal_modified.airline_error
let s:R1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Structure', 'fg'])
let s:R2 = s:I2
let s:R3 = s:I3
let g:airline#themes#gruvbox#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3)
let g:airline#themes#gruvbox#palette.replace_modified = g:airline#themes#gruvbox#palette.normal_modified
let g:airline#themes#gruvbox#palette.replace.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning
let g:airline#themes#gruvbox#palette.replace_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning
let g:airline#themes#gruvbox#palette.replace.airline_error = g:airline#themes#gruvbox#palette.normal.airline_error
let g:airline#themes#gruvbox#palette.replace_modified.airline_error = g:airline#themes#gruvbox#palette.normal_modified.airline_error
let s:V1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Question', 'fg'])
let s:V2 = s:N2
let s:V3 = airline#themes#get_highlight2(['Normal', 'bg'], ['TabLine', 'fg'])
let g:airline#themes#gruvbox#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
let g:airline#themes#gruvbox#palette.visual_modified = { 'airline_c': [ s:V3[0], '', s:V3[2], '', '' ] }
let g:airline#themes#gruvbox#palette.visual.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning
let g:airline#themes#gruvbox#palette.visual_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning
let g:airline#themes#gruvbox#palette.visual.airline_error = g:airline#themes#gruvbox#palette.normal.airline_error
let g:airline#themes#gruvbox#palette.visual_modified.airline_error = g:airline#themes#gruvbox#palette.normal_modified.airline_error
let s:IA = airline#themes#get_highlight2(['TabLine', 'fg'], ['CursorLine', 'bg'])
let g:airline#themes#gruvbox#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
let g:airline#themes#gruvbox#palette.inactive_modified = { 'airline_c': modified_group }
let g:airline#themes#gruvbox#palette.accents = { 'red': accents_group }
let s:TF = airline#themes#get_highlight2(['Normal', 'bg'], ['Normal', 'bg'])
let g:airline#themes#gruvbox#palette.tabline = {
\ 'airline_tab': s:N2,
\ 'airline_tabsel': s:N1,
\ 'airline_tabtype': s:V1,
\ 'airline_tabfill': s:TF,
\ 'airline_tabhid': s:IA,
\ 'airline_tabmod': s:I1
\ }
endfunction
call airline#themes#gruvbox#refresh()
" vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker:

View file

@ -1,41 +0,0 @@
" -----------------------------------------------------------------------------
" File: gruvbox.vim
" Description: Retro groove color scheme for Vim
" Author: morhetz <morhetz@gmail.com>
" Source: https://github.com/morhetz/gruvbox
" Last Modified: 09 Apr 2014
" -----------------------------------------------------------------------------
function! gruvbox#invert_signs_toggle()
if g:gruvbox_invert_signs == 0
let g:gruvbox_invert_signs=1
else
let g:gruvbox_invert_signs=0
endif
colorscheme gruvbox
endfunction
" Search Highlighting {{{
function! gruvbox#hls_show()
set hlsearch
call GruvboxHlsShowCursor()
endfunction
function! gruvbox#hls_hide()
set nohlsearch
call GruvboxHlsHideCursor()
endfunction
function! gruvbox#hls_toggle()
if &hlsearch
call gruvbox#hls_hide()
else
call gruvbox#hls_show()
endif
endfunction
" }}}
" vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker:

View file

@ -1,57 +0,0 @@
" -----------------------------------------------------------------------------
" File: gruvbox.vim
" Description: Gruvbox colorscheme for Lightline (itchyny/lightline.vim)
" Author: gmoe <me@griffinmoe.com>
" Source: https://github.com/morhetz/gruvbox
" Last Modified: 20 Sep 2017
" -----------------------------------------------------------------------------
function! s:getGruvColor(group)
let guiColor = synIDattr(hlID(a:group), "fg", "gui")
let termColor = synIDattr(hlID(a:group), "fg", "cterm")
return [ guiColor, termColor ]
endfunction
if exists('g:lightline')
let s:bg0 = s:getGruvColor('GruvboxBg0')
let s:bg1 = s:getGruvColor('GruvboxBg1')
let s:bg2 = s:getGruvColor('GruvboxBg2')
let s:bg4 = s:getGruvColor('GruvboxBg4')
let s:fg1 = s:getGruvColor('GruvboxFg1')
let s:fg4 = s:getGruvColor('GruvboxFg4')
let s:yellow = s:getGruvColor('GruvboxYellow')
let s:blue = s:getGruvColor('GruvboxBlue')
let s:aqua = s:getGruvColor('GruvboxAqua')
let s:orange = s:getGruvColor('GruvboxOrange')
let s:green = s:getGruvColor('GruvboxGreen')
let s:p = {'normal':{}, 'inactive':{}, 'insert':{}, 'replace':{}, 'visual':{}, 'tabline':{}, 'terminal':{}}
let s:p.normal.left = [ [ s:bg0, s:fg4, 'bold' ], [ s:fg4, s:bg2 ] ]
let s:p.normal.right = [ [ s:bg0, s:fg4 ], [ s:fg4, s:bg2 ] ]
let s:p.normal.middle = [ [ s:fg4, s:bg1 ] ]
let s:p.inactive.right = [ [ s:bg4, s:bg1 ], [ s:bg4, s:bg1 ] ]
let s:p.inactive.left = [ [ s:bg4, s:bg1 ], [ s:bg4, s:bg1 ] ]
let s:p.inactive.middle = [ [ s:bg4, s:bg1 ] ]
let s:p.insert.left = [ [ s:bg0, s:blue, 'bold' ], [ s:fg1, s:bg2 ] ]
let s:p.insert.right = [ [ s:bg0, s:blue ], [ s:fg1, s:bg2 ] ]
let s:p.insert.middle = [ [ s:fg4, s:bg2 ] ]
let s:p.terminal.left = [ [ s:bg0, s:green, 'bold' ], [ s:fg1, s:bg2 ] ]
let s:p.terminal.right = [ [ s:bg0, s:green ], [ s:fg1, s:bg2 ] ]
let s:p.terminal.middle = [ [ s:fg4, s:bg2 ] ]
let s:p.replace.left = [ [ s:bg0, s:aqua, 'bold' ], [ s:fg1, s:bg2 ] ]
let s:p.replace.right = [ [ s:bg0, s:aqua ], [ s:fg1, s:bg2 ] ]
let s:p.replace.middle = [ [ s:fg4, s:bg2 ] ]
let s:p.visual.left = [ [ s:bg0, s:orange, 'bold' ], [ s:bg0, s:bg4 ] ]
let s:p.visual.right = [ [ s:bg0, s:orange ], [ s:bg0, s:bg4 ] ]
let s:p.visual.middle = [ [ s:fg4, s:bg1 ] ]
let s:p.tabline.left = [ [ s:fg4, s:bg2 ] ]
let s:p.tabline.tabsel = [ [ s:bg0, s:fg4 ] ]
let s:p.tabline.middle = [ [ s:bg0, s:bg0 ] ]
let s:p.tabline.right = [ [ s:bg0, s:orange ] ]
let s:p.normal.error = [ [ s:bg0, s:orange ] ]
let s:p.normal.warning = [ [ s:bg2, s:yellow ] ]
let g:lightline#colorscheme#gruvbox#palette = lightline#colorscheme#flatten(s:p)
endif

File diff suppressed because it is too large Load diff

View file

@ -1,118 +0,0 @@
#!/bin/sh
if [ "${TERM%%-*}" = "screen" ]; then
if [ -n "$TMUX" ]; then
printf "\033Ptmux;\033\033]4;236;rgb:32/30/2f\007\033\\"
printf "\033Ptmux;\033\033]4;234;rgb:1d/20/21\007\033\\"
printf "\033Ptmux;\033\033]4;235;rgb:28/28/28\007\033\\"
printf "\033Ptmux;\033\033]4;237;rgb:3c/38/36\007\033\\"
printf "\033Ptmux;\033\033]4;239;rgb:50/49/45\007\033\\"
printf "\033Ptmux;\033\033]4;241;rgb:66/5c/54\007\033\\"
printf "\033Ptmux;\033\033]4;243;rgb:7c/6f/64\007\033\\"
printf "\033Ptmux;\033\033]4;244;rgb:92/83/74\007\033\\"
printf "\033Ptmux;\033\033]4;245;rgb:92/83/74\007\033\\"
printf "\033Ptmux;\033\033]4;228;rgb:f2/e5/bc\007\033\\"
printf "\033Ptmux;\033\033]4;230;rgb:f9/f5/d7\007\033\\"
printf "\033Ptmux;\033\033]4;229;rgb:fb/f1/c7\007\033\\"
printf "\033Ptmux;\033\033]4;223;rgb:eb/db/b2\007\033\\"
printf "\033Ptmux;\033\033]4;250;rgb:d5/c4/a1\007\033\\"
printf "\033Ptmux;\033\033]4;248;rgb:bd/ae/93\007\033\\"
printf "\033Ptmux;\033\033]4;246;rgb:a8/99/84\007\033\\"
printf "\033Ptmux;\033\033]4;167;rgb:fb/49/34\007\033\\"
printf "\033Ptmux;\033\033]4;142;rgb:b8/bb/26\007\033\\"
printf "\033Ptmux;\033\033]4;214;rgb:fa/bd/2f\007\033\\"
printf "\033Ptmux;\033\033]4;109;rgb:83/a5/98\007\033\\"
printf "\033Ptmux;\033\033]4;175;rgb:d3/86/9b\007\033\\"
printf "\033Ptmux;\033\033]4;108;rgb:8e/c0/7c\007\033\\"
printf "\033Ptmux;\033\033]4;208;rgb:fe/80/19\007\033\\"
printf "\033Ptmux;\033\033]4;88;rgb:9d/00/06\007\033\\"
printf "\033Ptmux;\033\033]4;100;rgb:79/74/0e\007\033\\"
printf "\033Ptmux;\033\033]4;136;rgb:b5/76/14\007\033\\"
printf "\033Ptmux;\033\033]4;24;rgb:07/66/78\007\033\\"
printf "\033Ptmux;\033\033]4;96;rgb:8f/3f/71\007\033\\"
printf "\033Ptmux;\033\033]4;66;rgb:42/7b/58\007\033\\"
printf "\033Ptmux;\033\033]4;130;rgb:af/3a/03\007\033\\"
else
printf "\033P\033]4;236;rgb:32/30/2f\007\033\\"
printf "\033P\033]4;234;rgb:1d/20/21\007\033\\"
printf "\033P\033]4;235;rgb:28/28/28\007\033\\"
printf "\033P\033]4;237;rgb:3c/38/36\007\033\\"
printf "\033P\033]4;239;rgb:50/49/45\007\033\\"
printf "\033P\033]4;241;rgb:66/5c/54\007\033\\"
printf "\033P\033]4;243;rgb:7c/6f/64\007\033\\"
printf "\033P\033]4;244;rgb:92/83/74\007\033\\"
printf "\033P\033]4;245;rgb:92/83/74\007\033\\"
printf "\033P\033]4;228;rgb:f2/e5/bc\007\033\\"
printf "\033P\033]4;230;rgb:f9/f5/d7\007\033\\"
printf "\033P\033]4;229;rgb:fb/f1/c7\007\033\\"
printf "\033P\033]4;223;rgb:eb/db/b2\007\033\\"
printf "\033P\033]4;250;rgb:d5/c4/a1\007\033\\"
printf "\033P\033]4;248;rgb:bd/ae/93\007\033\\"
printf "\033P\033]4;246;rgb:a8/99/84\007\033\\"
printf "\033P\033]4;167;rgb:fb/49/34\007\033\\"
printf "\033P\033]4;142;rgb:b8/bb/26\007\033\\"
printf "\033P\033]4;214;rgb:fa/bd/2f\007\033\\"
printf "\033P\033]4;109;rgb:83/a5/98\007\033\\"
printf "\033P\033]4;175;rgb:d3/86/9b\007\033\\"
printf "\033P\033]4;108;rgb:8e/c0/7c\007\033\\"
printf "\033P\033]4;208;rgb:fe/80/19\007\033\\"
printf "\033P\033]4;88;rgb:9d/00/06\007\033\\"
printf "\033P\033]4;100;rgb:79/74/0e\007\033\\"
printf "\033P\033]4;136;rgb:b5/76/14\007\033\\"
printf "\033P\033]4;24;rgb:07/66/78\007\033\\"
printf "\033P\033]4;96;rgb:8f/3f/71\007\033\\"
printf "\033P\033]4;66;rgb:42/7b/58\007\033\\"
printf "\033P\033]4;130;rgb:af/3a/03\007\033\\"
fi
elif [ "$TERM" != "linux" ] && [ "$TERM" != "vt100" ] && [ "$TERM" != "vt220" ]; then
printf "\033]4;236;rgb:32/30/2f\033\\"
printf "\033]4;234;rgb:1d/20/21\033\\"
printf "\033]4;235;rgb:28/28/28\033\\"
printf "\033]4;237;rgb:3c/38/36\033\\"
printf "\033]4;239;rgb:50/49/45\033\\"
printf "\033]4;241;rgb:66/5c/54\033\\"
printf "\033]4;243;rgb:7c/6f/64\033\\"
printf "\033]4;244;rgb:92/83/74\033\\"
printf "\033]4;245;rgb:92/83/74\033\\"
printf "\033]4;228;rgb:f2/e5/bc\033\\"
printf "\033]4;230;rgb:f9/f5/d7\033\\"
printf "\033]4;229;rgb:fb/f1/c7\033\\"
printf "\033]4;223;rgb:eb/db/b2\033\\"
printf "\033]4;250;rgb:d5/c4/a1\033\\"
printf "\033]4;248;rgb:bd/ae/93\033\\"
printf "\033]4;246;rgb:a8/99/84\033\\"
printf "\033]4;167;rgb:fb/49/34\033\\"
printf "\033]4;142;rgb:b8/bb/26\033\\"
printf "\033]4;214;rgb:fa/bd/2f\033\\"
printf "\033]4;109;rgb:83/a5/98\033\\"
printf "\033]4;175;rgb:d3/86/9b\033\\"
printf "\033]4;108;rgb:8e/c0/7c\033\\"
printf "\033]4;208;rgb:fe/80/19\033\\"
printf "\033]4;88;rgb:9d/00/06\033\\"
printf "\033]4;100;rgb:79/74/0e\033\\"
printf "\033]4;136;rgb:b5/76/14\033\\"
printf "\033]4;24;rgb:07/66/78\033\\"
printf "\033]4;96;rgb:8f/3f/71\033\\"
printf "\033]4;66;rgb:42/7b/58\033\\"
printf "\033]4;130;rgb:af/3a/03\033\\"
fi

View file

@ -1,116 +0,0 @@
#!/bin/sh
if [ "${TERM%%-*}" = "screen" ]; then
if [ -n "$TMUX" ]; then
printf "\033Ptmux;\033\033]4;236;rgb:26/24/23\007\033\\"
printf "\033Ptmux;\033\033]4;234;rgb:16/18/19\007\033\\"
printf "\033Ptmux;\033\033]4;235;rgb:1e/1e/1e\007\033\\"
printf "\033Ptmux;\033\033]4;237;rgb:2e/2a/29\007\033\\"
printf "\033Ptmux;\033\033]4;239;rgb:3f/39/35\007\033\\"
printf "\033Ptmux;\033\033]4;241;rgb:53/4a/42\007\033\\"
printf "\033Ptmux;\033\033]4;243;rgb:68/5c/51\007\033\\"
printf "\033Ptmux;\033\033]4;244;rgb:7f/70/61\007\033\\"
printf "\033Ptmux;\033\033]4;245;rgb:7f/70/61\007\033\\"
printf "\033Ptmux;\033\033]4;228;rgb:ef/df/ae\007\033\\"
printf "\033Ptmux;\033\033]4;230;rgb:f8/f4/cd\007\033\\"
printf "\033Ptmux;\033\033]4;229;rgb:fa/ee/bb\007\033\\"
printf "\033Ptmux;\033\033]4;223;rgb:e6/d4/a3\007\033\\"
printf "\033Ptmux;\033\033]4;250;rgb:cb/b8/90\007\033\\"
printf "\033Ptmux;\033\033]4;248;rgb:af/9f/81\007\033\\"
printf "\033Ptmux;\033\033]4;246;rgb:97/87/71\007\033\\"
printf "\033Ptmux;\033\033]4;167;rgb:f7/30/28\007\033\\"
printf "\033Ptmux;\033\033]4;142;rgb:aa/b0/1e\007\033\\"
printf "\033Ptmux;\033\033]4;214;rgb:f7/b1/25\007\033\\"
printf "\033Ptmux;\033\033]4;109;rgb:71/95/86\007\033\\"
printf "\033Ptmux;\033\033]4;175;rgb:c7/70/89\007\033\\"
printf "\033Ptmux;\033\033]4;108;rgb:7d/b6/69\007\033\\"
printf "\033Ptmux;\033\033]4;208;rgb:fb/6a/16\007\033\\"
printf "\033Ptmux;\033\033]4;88;rgb:89/00/09\007\033\\"
printf "\033Ptmux;\033\033]4;100;rgb:66/62/0d\007\033\\"
printf "\033Ptmux;\033\033]4;136;rgb:a5/63/11\007\033\\"
printf "\033Ptmux;\033\033]4;24;rgb:0e/53/65\007\033\\"
printf "\033Ptmux;\033\033]4;96;rgb:7b/2b/5e\007\033\\"
printf "\033Ptmux;\033\033]4;66;rgb:35/6a/46\007\033\\"
printf "\033Ptmux;\033\033]4;130;rgb:9d/28/07\007\033\\"
else
printf "\033P\033]4;236;rgb:26/24/23\007\033\\"
printf "\033P\033]4;234;rgb:16/18/19\007\033\\"
printf "\033P\033]4;235;rgb:1e/1e/1e\007\033\\"
printf "\033P\033]4;237;rgb:2e/2a/29\007\033\\"
printf "\033P\033]4;239;rgb:3f/39/35\007\033\\"
printf "\033P\033]4;241;rgb:53/4a/42\007\033\\"
printf "\033P\033]4;243;rgb:68/5c/51\007\033\\"
printf "\033P\033]4;244;rgb:7f/70/61\007\033\\"
printf "\033P\033]4;245;rgb:7f/70/61\007\033\\"
printf "\033P\033]4;228;rgb:ef/df/ae\007\033\\"
printf "\033P\033]4;230;rgb:f8/f4/cd\007\033\\"
printf "\033P\033]4;229;rgb:fa/ee/bb\007\033\\"
printf "\033P\033]4;223;rgb:e6/d4/a3\007\033\\"
printf "\033P\033]4;250;rgb:cb/b8/90\007\033\\"
printf "\033P\033]4;248;rgb:af/9f/81\007\033\\"
printf "\033P\033]4;246;rgb:97/87/71\007\033\\"
printf "\033P\033]4;167;rgb:f7/30/28\007\033\\"
printf "\033P\033]4;142;rgb:aa/b0/1e\007\033\\"
printf "\033P\033]4;214;rgb:f7/b1/25\007\033\\"
printf "\033P\033]4;109;rgb:71/95/86\007\033\\"
printf "\033P\033]4;175;rgb:c7/70/89\007\033\\"
printf "\033P\033]4;108;rgb:7d/b6/69\007\033\\"
printf "\033P\033]4;208;rgb:fb/6a/16\007\033\\"
printf "\033P\033]4;88;rgb:89/00/09\007\033\\"
printf "\033P\033]4;100;rgb:66/62/0d\007\033\\"
printf "\033P\033]4;136;rgb:a5/63/11\007\033\\"
printf "\033P\033]4;24;rgb:0e/53/65\007\033\\"
printf "\033P\033]4;96;rgb:7b/2b/5e\007\033\\"
printf "\033P\033]4;66;rgb:35/6a/46\007\033\\"
printf "\033P\033]4;130;rgb:9d/28/07\007\033\\"
fi
else
printf "\033]4;236;rgb:26/24/23\033\\"
printf "\033]4;234;rgb:16/18/19\033\\"
printf "\033]4;235;rgb:1e/1e/1e\033\\"
printf "\033]4;237;rgb:2e/2a/29\033\\"
printf "\033]4;239;rgb:3f/39/35\033\\"
printf "\033]4;241;rgb:53/4a/42\033\\"
printf "\033]4;243;rgb:68/5c/51\033\\"
printf "\033]4;244;rgb:7f/70/61\033\\"
printf "\033]4;245;rgb:7f/70/61\033\\"
printf "\033]4;228;rgb:ef/df/ae\033\\"
printf "\033]4;230;rgb:f8/f4/cd\033\\"
printf "\033]4;229;rgb:fa/ee/bb\033\\"
printf "\033]4;223;rgb:e6/d4/a3\033\\"
printf "\033]4;250;rgb:cb/b8/90\033\\"
printf "\033]4;248;rgb:af/9f/81\033\\"
printf "\033]4;246;rgb:97/87/71\033\\"
printf "\033]4;167;rgb:f7/30/28\033\\"
printf "\033]4;142;rgb:aa/b0/1e\033\\"
printf "\033]4;214;rgb:f7/b1/25\033\\"
printf "\033]4;109;rgb:71/95/86\033\\"
printf "\033]4;175;rgb:c7/70/89\033\\"
printf "\033]4;108;rgb:7d/b6/69\033\\"
printf "\033]4;208;rgb:fb/6a/16\033\\"
printf "\033]4;88;rgb:89/00/09\033\\"
printf "\033]4;100;rgb:66/62/0d\033\\"
printf "\033]4;136;rgb:a5/63/11\033\\"
printf "\033]4;24;rgb:0e/53/65\033\\"
printf "\033]4;96;rgb:7b/2b/5e\033\\"
printf "\033]4;66;rgb:35/6a/46\033\\"
printf "\033]4;130;rgb:9d/28/07\033\\"
fi

View file

@ -1,32 +0,0 @@
{
"name": "gruvbox",
"version": "3.0.1-rc.0",
"repository": "git@github.com:morhetz/gruvbox.git",
"author": "Pavel Pertsev <morhetz@gmail.com>",
"license": "MIT",
"scripts": {
"commitmsg": "validate-commit-msg",
"cz": "git-cz",
"postcheckout": "track-changed checkout",
"postmerge": "track-changed merge",
"postrewrite": "track-changed rewrite"
},
"devDependencies": {
"@bruitt/commit": "^1.0.0",
"babel-runtime": "^6.26.0",
"husky": "^0.13.1",
"standard-version": "^4.3.0",
"track-changed": "^1.0.2"
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
},
"track-changed": {
"yarn.lock": "yarn"
},
"vim": {
"opt": true
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,20 @@
#################################################################
# Global/Vim.gitignore
#################################################################
# Swap
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]
# Session
Session.vim
# Temporary
.netrwhist
*~
# Auto-generated tag files
tags
# Persistent undo
[._]*.un~

View file

@ -0,0 +1,10 @@
sudo: required
language: sh
services:
- docker
script:
- docker build -t test test/
- docker run --rm -it -v $(pwd):/mnt test colors/PaperColor.vim

View file

@ -0,0 +1,158 @@
Design Guideline
================
This note explains how to override theme colors and create your own theme on top of PaperColor as well as the full list of color names and the format of color values.
1. Customize current theme colors
2. Create your own theme
3. Color Format
4. Color Names
# Customize Current Theme Colors
You can override any color of the theme of interest. This example is for `default` theme (original PaperColor Theme), but you can specify any other theme that is registered.
The overriding setting is placed in `override` key of `g:PaperColor_Theme_Options` variable that you set in `.vimrc` like this.
```VimL
let g:PaperColor_Theme_Options = {
\ 'theme': {
\ 'default.dark': {
\ 'override' : {
\ 'color00' : ['#080808', '232'],
\ 'linenumber_bg' : ['#080808', '232']
\ }
\ }
\ }
\ }
```
In this case, `default` is color theme name, and `dark` is the specific variant that we want to override some colors. The other is `light`, and you can set the same way.
All colors can be overridden within `override` key. See Color Names section for all available options.
# Create your own theme
You can create your own theme on top of PaperColor. Your custom theme is simply responsible for color palette specification, similar to how the default theme specifies the colors. Think of this like a plugin for PaperColor framework. You can distribute your theme as a plugin that depends on PaperColor, and users need to install both. Your theme benefits from all development in PaperColor that occurs independently.
Example: https://github.com/NLKNguyen/papercolor-blue
Disclaimer: This feature is very new and important, and I expect many revisions to get it right, so keep in mind of incompatible changes in future.
TODO: more instruction
# Color Format
The format of color value is `[GUI-Color, 256-Color]` where each item is a quoted string.
* `GUI-Color` is used for Vim variants that can display GUI Color such as MacVim, GVim, or NeoVim. The value format is Red-Green-Blue in hexadecimal, i.e. `'#RRGGBB'`
* `256-Color` is used for terminal Vim. The value format is from `'00'` to `'255'` in base 10 number system.
You only have to provide one of them; for example, `['#080808', '']` or `['', '232']`, and the theme will automatically convert as needed.
256-color can be converted exactly to their GUI color representation. The reverse is not necessary true. 256-color can only represent a very small subset of GUI-color, so for the GUI color outside 256-color range, the converter can only approximate the nearest 256-color of the GUI-color.
This is a [256-color table](http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html) and their corresponding GUI-color.
# Color Names
## Standard
16 standard colors are the required for all themes. These are also the falling-back colors for all extended colors if not provided.
name | note
--------|-----------
color00 | background (main)
color01 | *negative* (should be red)
color02 | *positive* (should be green)
color03 | string
color04 | *neutral* (2nd background)
color05 | comment
color06 | typically storage class keywords
color07 | foreground (normal text)
color08 | 3rd background
color09 | typically import/try-catch keywords
color10 | typically type and more emphasized keywords
color11 | typically if/conditional/loop keywords
color12 | accent (rarely used)
color13 | typically number
color14 | typically the rest of keywords
color15 | highlight
## Extended Colors
All of these are optional but better be utilized for theme richness.
name | note
-------- | -----------
color16 | certain keywords where otherwise just color14
color17 | typically boolean and label/tag
cursor_fg |
cursor_bg |
cursorline |
cursorcolumn |
cursorlinenr_fg |
cursorlinenr_bg |
popupmenu_fg |
popupmenu_bg |
search_fg |
search_bg |
linenumber_fg |
linenumber_bg |
vertsplit_fg |
vertsplit_bg |
statusline_active_fg |
statusline_active_bg |
statusline_inactive_fg |
statusline_inactive_bg |
todo_fg |
todo_bg |
error_fg |
error_bg |
matchparen_bg |
matchparen_fg |
visual_fg |
visual_bg |
folded_fg |
folded_bg |
wildmenu_fg |
wildmenu_bg |
spellbad |
spellcap |
spellrare |
spelllocal |
diffadd_fg |
diffadd_bg |
diffdelete_fg |
diffdelete_bg |
difftext_fg |
difftext_bg |
diffchange_fg |
diffchange_bg |
For tabline plugin
name | note
-------- | -----------
tabline_bg |
tabline_active_fg |
tabline_active_bg |
tabline_inactive_fg |
tabline_inactive_bg |
For vim-buftabline plugin
name | note
-------- | -----------
buftabline_bg |
buftabline_current_fg |
buftabline_current_bg |
buftabline_active_fg |
buftabline_active_bg |
buftabline_inactive_fg |
buftabline_inactive_bg |

View file

@ -0,0 +1,22 @@
The MIT License (MIT)
Copyright (c) 2015-2017 Nikyle Nguyen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View file

@ -0,0 +1,275 @@
PaperColor Theme
===================
[![license](https://img.shields.io/github/license/NLKNguyen/papercolor-theme.svg?maxAge=2592000)](https://github.com/NLKNguyen/papercolor-theme/blob/master/LICENSE) [![](https://img.shields.io/github/issues-raw/NLKNguyen/papercolor-theme.svg?maxAge=2592000)](https://github.com/NLKNguyen/papercolor-theme/issues) [![](https://img.shields.io/github/issues-closed-raw/NLKNguyen/papercolor-theme.svg?maxAge=2592000)](https://github.com/NLKNguyen/papercolor-theme/issues) [![GitHub release](https://img.shields.io/github/release/NLKNguyen/papercolor-theme.svg)](https://github.com/NLKNguyen/papercolor-theme/releases) [![Travis CI Build Status](https://travis-ci.org/NLKNguyen/papercolor-theme.svg?branch=master)](https://travis-ci.org/NLKNguyen/papercolor-theme)
Light & Dark color schemes for terminal and graphic **Vim** awesome editor
Inspired by Google's Material Design
Improve code readability; great for presentation
## Inclusive support
### Color Ranges
Support True color / **GUI-color** and identical **256-color** that the design is based on.
Also gracefully support down to **16-color** terminal, which will use terminal native colors. You need to change the terminal colors to PaperColor palette.
In 8-color and 4-color, it might lack the necessary variation of colors to express PaperColor, but seriously let me know if you still use these kinds of terminals.
### Languages and Plugins
Currently designed for these languages:
- Haskell, Erlang, Elixir, Clojure, Elm, Purescript, F#
- C, C++, Golang, Rust, Java, JavaScript, Python, Ruby, Pascal, PHP, Perl, LUA
- DTrace, SystemTap, SQL/MySQL, Octave/MATLAB, R, Lex/Flex & Yacc/Bison, ASN.1, Assembly (MIPS, GAS, NASM), Bash/Shell script, Sed, Awk, Vim script, Powershell script
- Dockerfile, Makefile, CMake, NGINX, Cucumber, YAML, JSON, HTML, XML, Markdown, reStructuredText, PlantUML, Dosini, Mail, Git commit message
- Ada, COBOL, Fortran, ALGOL, *(what's your other favorite dinosaur?)*
Other file types can still display well as long as your Vim is set up to recognize the language syntax even though that may not be the optimal experience. So, if the language you are working on isn't listed here, feel free to make a design request.
Plugin support: vimdiff, netrw, [NERDTree](https://github.com/scrooloose/nerdtree), [tagbar](https://github.com/majutsushi/tagbar), [tabline](https://github.com/mkitt/tabline.vim), [vim-airline](https://github.com/bling/vim-airline), [vim-indent-guides](https://github.com/nathanaelkane/vim-indent-guides), [vim-startify](https://github.com/mhinz/vim-startify), [Agit](https://github.com/cohama/agit.vim)
(see below for syntax-highlighting plugins target)
## Installation
Place 'PaperColor.vim' file into 'colors' folder within your Vim directory, e.g. `~/.vim/colors/`
Or simply use a plugin manager like [Vundle](https://github.com/gmarik/Vundle.vim) (recommended for easy `:PluginUpdate`):
Plugin 'NLKNguyen/papercolor-theme'
Then, put this in your `~/.vimrc`
```VimL
set t_Co=256 " This is may or may not needed.
set background=light
colorscheme PaperColor
```
Or using the dark version:
```VimL
set background=dark
colorscheme PaperColor
```
To switch to dark or light variant during session: `:set background=dark` or `:set background=light`
To quickly toggle between them, use [vim-unimpaired](https://github.com/tpope/vim-unimpaired)'s keymap `cob`
*Optional*: turn on line numbers and status bar
```VimL
set number
set laststatus=2
```
## User-config Options
This theme currently provides theme options and language-specific options. All config options can be stored in global variable `g:PaperColor_Theme_Options` which can be set in your `.vimrc`
**Note**:
+ This `g:PaperColor_Theme_Options` variable must be placed anywhere **before** `color PaperColor` command.
+ if the same option is provided in both a theme and a theme's variant, the value in the theme's variant options will take precedence.
### Theme Options
Within section `theme`, options for each theme can be specified under the theme name. The original PaperColor theme is `default`. For example:
```VimL
let g:PaperColor_Theme_Options = {
\ 'theme': {
\ 'default': {
\ 'transparent_background': 1
\ }
\ }
\ }
```
Or if you want to specify options only for a variant (dark or light) of a theme, you can specify using this pattern `[theme name].light` or `[theme name].dark`. For example:
```VimL
let g:PaperColor_Theme_Options = {
\ 'theme': {
\ 'default.dark': {
\ 'transparent_background': 1
\ }
\ }
\ }
```
**Color overriding**
You can override any color of the theme of interest. This example is for `default` theme (original PaperColor Theme), but you can specify any other theme that is registered.
The overriding setting is placed in `override` key of `g:PaperColor_Theme_Options` variable that you set in `.vimrc` like this.
```VimL
let g:PaperColor_Theme_Options = {
\ 'theme': {
\ 'default.dark': {
\ 'override' : {
\ 'color00' : ['#080808', '232'],
\ 'linenumber_bg' : ['#080808', '232']
\ }
\ }
\ }
\ }
```
See [DESIGN.md](https://github.com/NLKNguyen/papercolor-theme/blob/master/DESIGN.md) for more details and full list of color names.
#### Currently available theme options
option | value | default
------ | ------ | -------
`transparent_background` | 1: use terminal background | 0: use theme background
`allow_bold` | 1: use bold for certain text, 0: not at all | decided by the theme
`allow_italic` | 1: use italics for certain text, 0: not at all | decided by the theme
`override` | dictionary of color key-value |
### Language-specific options
In general, for each language, built-in functions and constants are not highlighted.
This is intentional; the vim syntax file often lags behind actual language development.
To override the default behavior, optionally place a language section in `g:PaperColor_Theme_Options`.
An example configuration is available below
```VimL
let g:PaperColor_Theme_Options = {
\ 'language': {
\ 'python': {
\ 'highlight_builtins' : 1
\ },
\ 'cpp': {
\ 'highlight_standard_library': 1
\ },
\ 'c': {
\ 'highlight_builtins' : 1
\ }
\ }
\ }
```
#### Currently available language options
language | option | value | default
------ | ------ | ------ | ------
`c` | `highlight_builtins` | 1: enable | 0: disable
`cpp` | `highlight_standard_library` | 1: enable | 0: disable
`python` | `highlight_builtins` | 1: enable | 0: disable
## Syntax Highlighting Plugins Target
There are syntax highlighting enhancement plugins that improve upon Vim built-in syntax highlighting, and each can have many different implementations. This is the list of plugins that this color scheme targets.
* C: [c-syntax.vim](https://github.com/NLKNguyen/c-syntax.vim)
* JavaScript: [vim-javascript](https://github.com/pangloss/vim-javascript)
* Jsx: [vim-jsx-pretty](https://github.com/MaxMEllon/vim-jsx-pretty)
* JSON: [vim-json](https://github.com/elzr/vim-json)
* Go: [vim-go](https://github.com/fatih/vim-go)
* DTrace: [dtrace-syntax-file](https://github.com/vim-scripts/dtrace-syntax-file)
* SystemTap: [vim-systemtap](https://github.com/nickhutchinson/vim-systemtap)
* Haskell: [haskell-vim](https://github.com/raichoo/haskell-vim)
* PlantUML: [plantuml-syntax](https://github.com/aklt/plantuml-syntax)
* Markdown: [vim-markdown](https://github.com/plasticboy/vim-markdown)
* Assembly MIPS: [mips](https://github.com/vim-scripts/mips.vim)
* Assembly GAS: [vim-gas](https://github.com/Shirk/vim-gas)
* Octave/MATLAB: [vim-octave](https://github.com/jvirtanen/vim-octave)
* Python: [python-syntax](https://github.com/hdima/python-syntax/)
* Dockerfile: [dockerfile.vim](https://github.com/docker/docker/tree/master/contrib/syntax/vim)
* NGINX: [nginx-vim-syntax](https://github.com/evanmiller/nginx-vim-syntax)
* Elixir: [vim-elixir](https://github.com/elixir-lang/vim-elixir)
* Elm: [elm-vim](https://github.com/ElmCast/elm-vim)
* Purescript: [purescript-vim](https://github.com/purescript-contrib/purescript-vim)
* F#: [vim-fsharp](https://github.com/fsharp/vim-fsharp)
* PowerShell: [vim-ps1](https://github.com/PProvost/vim-ps1)
* CMake: [vim-cmake-syntax](https://github.com/pboettch/vim-cmake-syntax)
* ALGOL: [vim-algol68](https://github.com/sterpe/vim-algol68)
## Screenshots
**Default Light**
![Sample Ruby code](https://nlknguyen.files.wordpress.com/2015/05/ruby1.png)
![Sample DTrace code](https://nlknguyen.files.wordpress.com/2015/05/dtrace1.png)
![Sample MySQL code](https://nlknguyen.files.wordpress.com/2015/05/mysql.png)
![Sample Assembly code](https://nlknguyen.files.wordpress.com/2015/05/asm.png)
![Sample Vimdiff w/ git tool](https://cloud.githubusercontent.com/assets/4667129/24315492/9410c372-10a4-11e7-84c7-8846984bdca0.png)
**Default Dark**
![Sample Ruby code](https://nlknguyen.files.wordpress.com/2015/05/ruby-dark.png)
![Sample Go code](https://nlknguyen.files.wordpress.com/2015/05/go-dark.png)
![Sample JavaScript code](https://nlknguyen.files.wordpress.com/2015/05/javascript-dark2.png)
![Sample C code](https://nlknguyen.files.wordpress.com/2015/05/c-dark-split.png)
![Sample Vimdiff w/ git tool](https://cloud.githubusercontent.com/assets/4667129/24315493/94122816-10a4-11e7-8d3f-f5d92a064a14.png)
**Have screenshots to contribute?** Use [this thread](https://github.com/NLKNguyen/papercolor-theme/issues/90) to upload images and get direct links.
----
![Vim-airline support](https://nlknguyen.files.wordpress.com/2015/05/gifrecord_2015-05-31_010251.gif)
To set [vim-airline](https://github.com/bling/vim-airline) theme:
let g:airline_theme='papercolor'
To set [lightline](https://github.com/itchyny/lightline.vim) theme:
let g:lightline = { 'colorscheme': 'PaperColor' }
For more sceenshots, story behind the project, and other users' designs inspired by Paper Color, go to [this blog post](http://nlknguyen.com/2015/05/21/vim-paper-color-theme/)
Suggestions/Wishes/Questions/Comments are welcome via [Github issues](https://github.com/NLKNguyen/papercolor-theme/issues) or via the blog above.
# Related Projects Based On PaperColor
[Material iTerm](https://github.com/stoeffel/material-iterm) theme by Christoph Hermann
[Material Terminator](https://github.com/marhs/material-terminator) (terminal emulator) theme by Marco Herrero
[Terminal Theme](https://www.reddit.com/r/vim/comments/36xzbs/vim_paper_color_theme_inspired_by_googles/crqbfpa) by Fixles
[PaperColor Light for iTerm2](https://github.com/aseom/dotfiles/blob/master/osx/iterm2/papercolor-light.itermcolors) by ASeom Han
[PaperColor for Terminal.app](https://github.com/tomotargz/papercolor-terminal-app) by tomotargz
[PaperColor Light for konsole](https://raw.githubusercontent.com/z2oh/dotfiles/82bf6835948674f0ed1f98a14b82975ff2dd8f3e/konsole/paperrlight.colorscheme) by [z2oh](https://github.com/z2oh)
[PaperColor Theme for Vis Editor](https://github.com/jceb/dotfiles/blob/master/config/vis/lexers/themes/papercolor.lua) by Jan Christoph Ebersbach
[Airline PaperColor Theme for Emacs Powerline](https://github.com/AnthonyDiGirolamo/airline-themes) by Anthony DiGirolamo
[Airline PaperColor Theme for Vim Lightline](https://github.com/itchyny/lightline.vim)
[Ninrod's `vim + tmux + zsh` dotfiles](https://github.com/ninrod/dotfiles.git) by [Filipe Silva](https://github.com/ninrod)
[PaperColor for Vscode](https://github.com/Rozbo/papercolor-vscode) by [rozbo](https://github.com/rozbo)
[PaperColor theme for Hyper](https://github.com/rafaelrinaldi/hyper-papercolor) by [Rafael Rinaldi](https://github.com/rafaelrinaldi)
[PaperColor Theme for kitty](https://github.com/craffate/papercolor-kitty) by [Cyril Raffatelli](https://github.com/craffate)
[PaperColor Light theme for cmus](https://github.com/eremit/papercolor-light-cmus) by [eremit](https://github.com/eremit)
Feel free to add related projects here!

View file

@ -0,0 +1,18 @@
# 1.0 Release Candidate
For more than 1 year and a half, PaperColor has been improved a lot, but there is no release tag. The reason is because there has always been small incremental changes and supports for more languages and plugins. Now it's time for something different. Version 1.0 is going to be the biggest improvement of PaperColor to add support for low-quality terminals and to enable alternative color palettes on top of PaperColor's rich support for many file types and plugins.
[Join the discussion](https://github.com/NLKNguyen/papercolor-theme/issues/71)
Task List:
- [x] Support 16-color terminal (e.g. Windows Command Prompt). Currently, PaperColor requires 256-color.
- [x] Provide terminal themes for PaperColor Light & Dark, target firstly Windows Command Prompt and Mac Terminal. The other repo https://github.com/NLKNguyen/papercolor-16 will be dedicated for terminal themes.
- [ ] Provide terminal theme design guideline so that others can port to different terminals AND make alternative color palettes for PaperColor. ~~For now, this is the only reference http://codepen.io/NLKNguyen/full/NrRpej/~~
- [ ] Enable alternative color palettes for PaperColor in True-color / 256-color.
Related issues (motivations):
* https://github.com/NLKNguyen/papercolor-theme/issues/64
* https://github.com/NLKNguyen/papercolor-theme/issues/65
* https://github.com/NLKNguyen/papercolor-theme/pull/68
* https://github.com/NLKNguyen/papercolor-theme/issues/69
* https://github.com/NLKNguyen/papercolor-theme/issues/70

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,228 @@
*PaperColor.txt* An elegant, flexible, and beautiful Vim colorscheme.
Author: Nikyle Nguyen
Table of Contents *PaperColor-Theme*
1. Introduction .......................... |PaperColor-Theme-intro|
2. Setup ................................. |PaperColor-Theme-setup|
3. Configuration ......................... |PaperColor-Theme-configuration|
4. Credits ............................... |PaperColor-Theme-credits|
==============================================================================
1. INTRODUCTION *PaperColor-Theme-intro*
The |PaperColor-Theme| plugin provides an elegant, flexible, and beautiful Vim
colorscheme. It provides the following distinguishing features:
1. Comprehensive programming language and plugin support
2. Light AND Dark theme
3. Flexible color ranges
4. Complete configurability
5. Performance
Comprehensive language and plugin support~
PaperColor is designed to support any language with Vim syntax definitions.
At the time of writing, these languages include:
ALGOL, ASN.1, Ada, Assembly (MIPS, GAS, NASM), Awk, Bash/Shell script, C++, C,
CMake, COBOL, Clojure, Cucumber, DTrace, Dockerfile, Dosini, Elixir, Elm,
Erlang, F#, Fortran, Git commit message, Golang, HTML, Haskell, JSON, Java,
JavaScript, Jsx, LUA, Lex/Flex & Yacc/Bison, Mail, Makefile, Markdown, NGINX,
Octave/MATLAB, PHP, Pascal, Perl, PlantUML, Powershell script, Purescript,
Python, R, Ruby, Rust, SQL/MySQL, Sed, SystemTap, Vim script, XML, YAML,
reStructuredText, (insert another dinosaur...), (insert another egg...)
As most active Vim users have discovered, the best language syntax support
comes from community-driven plugins. Please refer to the PaperColor Git
repository's README for references to syntax plugins that are directly
supported by PaperColor.
Light AND dark theme~
Some colorschemes are light, some are dark. PaperColor is both.
Flexible color ranges~
A given terminals or GUI programs may support a different number of colors.
PaperColor aims to support most, if not all, of these options. PaperColor
currently supports True color / GUI-color, and identical 256-color that the
design is based on. It also gracefully supports everything down to a 16-color
terminal, which uses terminal native colors (think the Linux tty).
Note that in 8-color and 4-color, PaperColor may lack the necessary variation
of colors to function properly.
Complete configurability~
If you don't like our choices, you are free to change them with flexible
configuration options explained in |PaperColor-Theme-configuration|.
Performance~
Performance is important. This plugin does a lot, but optimizations have been
prioritized where possible to prevent it from slowing you down.
==============================================================================
2. Setup *PaperColor-Theme-setup*
Assuming you've already installed this plugin, to get it to work properly,
you'll need to configure your Vim syntax. To start, you should tell PaperColor
what your terminal supports.
If your terminal only supports 16 colors: >
set t_Co=16
If your terminal supports up to 256 colors: >
set t_Co=256
If your terminal supports True Color: >
set termguicolors
If you'd like to use the "dark" version of PaperColor: >
set background=dark
If you'd like to use the "light" version of PaperColor: >
set background=light
Finally, after you've selected your appropriate configuration options above: >
colorscheme PaperColor
Here is a full example with a dark background and True Color support: >
set termguicolors
set background=dark
colorscheme PaperColor
When PaperColor is enabled, to switch to dark or light variant during an
editing session: >
:set background=dark OR :set background=light
Some plugins have PaperColor support.
To set vim-airline theme: >
let g:airline_theme='papercolor'
To set lightline theme: >
let g:lightline = { 'colorscheme': 'PaperColor' }
==============================================================================
3. CONFIGURATION *PaperColor-Theme-configuration*
This theme currently provides theme options and language-specific options. All
config options can be stored in global variable g:PaperColor_Theme_Options
which can be set in your .vimrc.
g:PaperColor_Theme_Options must be placed before "colorscheme PaperColor" in
your vimrc.
If the same option is provided in both a theme and a theme's variant, the
value in the theme's variant options will take precedence.
*g:PaperColor_Theme_Options*
g:PaperColor_Theme_Options~
Type: Dictionary[String, Dictionary]
Default: {}
*Theme options*
Within section theme, options for each theme can be specified under the theme
name. The original PaperColor theme is default. For example: >
let g:PaperColor_Theme_Options = {
\ 'theme': {
\ 'default': {
\ 'transparent_background': 1
\ }
\ }
\ }
Or if you want to specify options only for a variant (dark or light) of a
theme, you can specify using this pattern [theme name].light or [theme
name].dark. For example: >
let g:PaperColor_Theme_Options = {
\ 'theme': {
\ 'default.dark': {
\ 'override' : {
\ 'color00' : ['#080808', '232'],
\ 'linenumber_bg' : ['#080808', '232']
\ }
\ }
\ }
\ }
Accepted values~
transparent_background >
values -- 1: use terminal background, 0: use theme background
default -- 0
allow_bold >
values -- 1: use bold for certain text, 0: not at all
default -- decided by the theme
allow_italic >
values -- 1: use italics for certain text, 0: not at all
default -- decided by the theme
override >
values -- dictionary of color key-value
default -- {}
*Language-specific options*
In general, for each language, built-in functions and constants are not
highlighted. This is intentional; the vim syntax file often lags behind actual
language development. To override the default behavior, optionally place a
language section in g:PaperColor_Theme_Options. An example configuration is
available below: >
let g:PaperColor_Theme_Options = {
\ 'language': {
\ 'python': {
\ 'highlight_builtins' : 1
\ },
\ 'cpp': {
\ 'highlight_standard_library': 1
\ },
\ 'c': {
\ 'highlight_builtins' : 1
\ }
\ }
\ }
Accepted values~
language option values default
c highlight_builtins 1: enable, 0: disable 0
cpp highlight_standard_library 1: enable, 0: disable 0
python highlight_builtins 1: enable, 0: disable 0
==============================================================================
4. CREDITS *PaperColor-Theme-credits*
Special thanks to Samuel Roeca for writing this documentation.
Development for PaperColor-Theme takes place at
https://github.com/NLKNguyen/papercolor-theme. Please refer to that
repository's README for the latest news, projects, and features. If you have a
plugin, language, or other feature that you would like implemented, please
submit a pull request or raise an issue.
vim:tw=78:ts=8:ft=help:norl:

View file

@ -0,0 +1,19 @@
FROM nlknguyen/alpine-shellcheck
MAINTAINER Nikyle Nguyen <NLKNguyen@MSN.com>
RUN apk add --no-cache vim
RUN mkdir -p /opt/
COPY test.sh /opt/
# Check test script
RUN shellcheck /opt/test.sh
RUN chmod +x /opt/test.sh
# Start working at the mounted directory
WORKDIR /mnt
ENTRYPOINT ["/opt/test.sh"]

View file

@ -0,0 +1,59 @@
#!/bin/sh
set -e
framework_file=$1
# cat ${framework_file}
# Custom temporary runtime path for vim
custom_rtp=$(mktemp -d)
# Add color scheme to runtime part
mkdir -p "${custom_rtp}/colors"
cp "${framework_file}" "${custom_rtp}/colors"
# Minimum vimrc file
cat > "${custom_rtp}/.vimrc" <<- EOF
set rtp+=${custom_rtp}
syntax on
color PaperColor
EOF
# Go to temporary directory
cd "$(mktemp -d)" || exit 1
###############################
printf "Check startup status... "
echo | vim -Nu "$custom_rtp/.vimrc" +qa 1>/dev/null 2>err.txt
if grep -q Error err.txt
then
echo "$framework_file caused starup error"
sed 's/^.*Error/Error/' err.txt
exit 1
fi
rm err.txt
echo "ok"
###############################
# TODO: later after rearchitect test mechanism
# printf "Run unit test... "
# vim -Nu "${custom_rtp}/.vimrc" -c 'call g:PaperColor_Test()' +qa 1>log.txt 2>err.txt
# if grep -q Error log.txt
# then
# echo "error"
# sed 's/^.*Error/Error/' log.txt
# exit 1
# fi
# if grep -q "FAILED" log.txt
# then
# echo "$framework_file failed unit test"
# exit 1
# fi
# rm log.txt
# echo "ok"
exit 0

3
vimrc
View file

@ -84,7 +84,6 @@ if has("eval")
" Protect commands that are only available when +eval is enabled. " Protect commands that are only available when +eval is enabled.
" Technically only "if 1" would be required, as "has()" is provided " Technically only "if 1" would be required, as "has()" is provided
" by +eval, but this is clearer. " by +eval, but this is clearer.
colorscheme gruvbox
command Q q command Q q
command W w command W w
command WQ wq command WQ wq
@ -108,6 +107,7 @@ if has("eval")
else else
set t_Co=16 set t_Co=16
endif endif
colorscheme PaperColor
endif endif
" ====================================================================== " ======================================================================
@ -137,6 +137,7 @@ if has("gui_running")
set guifont=Source_Code_Pro:h9:cANSI:qDRAFT, set guifont=Source_Code_Pro:h9:cANSI:qDRAFT,
\Consolas:h10:cANSI \Consolas:h10:cANSI
endif endif
set background=light
set columns=88 set columns=88
set guioptions+=cm set guioptions+=cm
set guioptions-=T set guioptions-=T