Rebuild colorschemes and update the docs for Neovim.

This commit is contained in:
Lifepillar
2023-06-06 14:52:56 +02:00
parent 017b7b7f29
commit 8d7abcbb41
8 changed files with 78 additions and 89 deletions

View File

@@ -1,37 +1,31 @@
# Solarized 8: True Colors # Solarized 8 for Neovim
Solarized 8 Flat Dark | Solarized 8 Flat Light Solarized 8 Flat Dark | Solarized 8 Flat Light
:-------------------------:|:-------------------------: :-------------------------:|:-------------------------:
![](https://raw.github.com/lifepillar/Resources/master/solarized8/solarized8_dark_flat.png) | ![](https://raw.github.com/lifepillar/Resources/master/solarized8/solarized8_light_flat.png) ![](https://raw.github.com/lifepillar/Resources/master/solarized8/solarized8_dark_flat.png) | ![](https://raw.github.com/lifepillar/Resources/master/solarized8/solarized8_light_flat.png)
This is yet another Solarized theme for Vim. It places itself half way between This is yet another Solarized theme for Neovim. It places itself half way between
the original [Solarized](https://github.com/altercation/vim-colors-solarized) the original [Solarized](https://github.com/altercation/vim-colors-solarized)
and the [Flattened](https://github.com/romainl/flattened) variant. It and the [Flattened](https://github.com/romainl/flattened) variant. It
removes only *some* of the bullshit. The color palette is exactly the same as removes only *some* of the bullshit. The color palette is exactly the same as
in Solarized, although some highlight groups are defined slightly in Solarized, although some highlight groups are defined slightly
differently (for instance, I have tried to avoid red on blue). differently (for instance, I have tried to avoid red on blue).
The main reason for the existence of this project is that the original Solarized The main reason for the existence of this project is that the original
theme does not define `guifg` and `guibg` in terminal Vim, making it unsuitable Solarized theme does not define `guifg` and `guibg` in terminal Vim, making it
for versions of Vim supporting true-color (i.e., 24-bit color) terminals. unsuitable for Neovim and capable terminals. Instead, this color scheme works
Instead, this color scheme works **out of the box everywhere**. For the best **out of the box everywhere**. For the best experience, you need:
experience, you need:
- Vim ≥7.4.1799, or NeoVim, with `termguicolors` set, **and** - NeoVim with `termguicolors` set, **and**
- a terminal supporting millions of colors (but see below for workarounds). - a terminal supporting millions of colors (but see below for workarounds).
Solarized 8 also works in any GUI version of Vim: no configuration is
necessary.<sup>*</sup> See below for installation instructions.
<sup>*</sup> [VimR](https://github.com/qvacua/vimr) users must set ## But, my terminal does not have millions of colors!
`termguicolors` before loading the color scheme.
For terminals not supporting true colors, set `g:solarized_t_Co` to the number
## But, my terminal has only 256 colors! of colors available in your terminal. If that variable is set to `256` then
Solarized 8 will fall back to use an approximate palette based on xterm's 256
For terminals not supporting true colors, Solarized 8 will fall back to use an colors, which looks more or less like this:
approximate palette based on xterm's 256 colors, which looks more or less like
this:
Dark 256 color palette | Light 256 color palette Dark 256 color palette | Light 256 color palette
:-------------------------:|:-------------------------: :-------------------------:|:-------------------------:
@@ -40,10 +34,10 @@ Dark 256 color palette | Light 256 color palette
(Yeah, it looks like a different color scheme: Solarized palette is far away (Yeah, it looks like a different color scheme: Solarized palette is far away
from xterm colors!) from xterm colors!)
If you do not like this approximation, to get exact colors with such terminals If you do not like this approximation or if you want to force the use of the 16
you have two possibilities: terrminal's ANSI colors, do one of the following:
1. Modify some of your terminal colors in the range 16255 to match Solarized 1. modify some of your terminal colors in the range 16255 to match Solarized
palette. For this purpose, you may run (*not* source!) palette. For this purpose, you may run (*not* source!)
`scripts/solarized8.sh`; no setting is needed in Vim. For instance, if you `scripts/solarized8.sh`; no setting is needed in Vim. For instance, if you
are using Bash, put this in `.bashrc`: are using Bash, put this in `.bashrc`:
@@ -56,11 +50,11 @@ you have two possibilities:
instance, in Apple's Terminal.app, running `solarized.sh` has no effect. instance, in Apple's Terminal.app, running `solarized.sh` has no effect.
2. Set your terminal's 16 ANSI colors (the colors in the range 015) to the 2. Set your terminal's 16 ANSI colors (the colors in the range 015) to the
Solarized palette (how to do that depends on the terminal) *and* `set Solarized palette (how to do that depends on the terminal) *and* add
t_Co=16` in Vim (or `let g:solarized_use16=1`) to instruct Vim to use your `let g:solarized_t_Co=16` to your `vimrc` to instruct Neovim to use your
terminal's colors. Be aware that, if you force the use of your terminal terminal's colors. Be aware that, if you force the use of your terminal
colors in Vim with any of these settings, but your terminal is not colors in Neovim, but your terminal is not configured to use the Solarized
configured to use the Solarized palette, your colors will be completely off! palette, your colors will be completely off!
**Note:** whatever method you choose, keep in mind that if your terminal does **Note:** whatever method you choose, keep in mind that if your terminal does
not support millions of colors, you must *not* set `termguicolors` (i.e., make not support millions of colors, you must *not* set `termguicolors` (i.e., make
@@ -71,7 +65,7 @@ sure that `set termguicolors?` outputs `notermguicolors`).
In the past, Solarized 8 used to complain when your terminal did not support In the past, Solarized 8 used to complain when your terminal did not support
enough colors. But the current version will gracefully degrade to a (beautiful!) enough colors. But the current version will gracefully degrade to a (beautiful!)
black&white color scheme: black&white color scheme. Just `let g:solarized_t_Co=0`:
Solarized 8 B&W variant | Solarized 8 B&W variant Solarized 8 B&W variant | Solarized 8 B&W variant
:-------------------------:|:-------------------------: :-------------------------:|:-------------------------:
@@ -80,11 +74,13 @@ Solarized 8 B&W variant | Solarized 8 B&W variant
## Installation ## Installation
If your Vim supports packages (`echo has('packages')` prints `1`), I strongly I strongly recommend that you use Vim packages. Just clone this repo inside
recommend that you use them. Just clone this repo inside `pack/*/opt`, e.g.: `pack/*/opt` and checkout the `neovim` branch:
git clone https://github.com/lifepillar/vim-solarized8.git \ git clone https://github.com/lifepillar/vim-solarized8.git \
~/.vim/pack/themes/opt/solarized8 ~/.vim/pack/themes/start/solarized8
cd ~/.vim/pack/themes/start/solarized8
git checkout neovim
Otherwise, use you favourite installation method. Otherwise, use you favourite installation method.
@@ -154,7 +150,7 @@ The following options were not available in the original Solarized:
Solarized's cursor style (default: `0`). By default, the cursor is orange/red Solarized's cursor style (default: `0`). By default, the cursor is orange/red
in light themes, and blue in dark themes (but please note that your terminal in light themes, and blue in dark themes (but please note that your terminal
may override the cursor's color). may override the cursor's color).
- `g:solarized_use16`: set to `1` to force using your 16 ANSI terminal colors. - `g:solarized_t_Co`: set to the number of colors your terminal supports.
- `g:solarized_extra_hi_groups`: set to `1` to enable Solarized - `g:solarized_extra_hi_groups`: set to `1` to enable Solarized
filetype-specific syntax highlighting groups (default is `0`). Please be filetype-specific syntax highlighting groups (default is `0`). Please be
aware that if your Vim is not recent enough you may encounter [an aware that if your Vim is not recent enough you may encounter [an
@@ -164,36 +160,10 @@ The following options were not available in the original Solarized:
All these options may be used with any Solarized 8 variant. All these options may be used with any Solarized 8 variant.
## Troubleshooting
**Hey, I do not get the right colors when running Vim inside tmux or in my
favourite true-color enabled terminal!**
Try putting this in your `.vimrc`:
```viml
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
```
See `:h xterm-true-color` for the details.
It may also be necessary to add the following to your `tmux.conf`:
```
# Add truecolor support
set-option -ga terminal-overrides ",xterm-256color:Tc"
# Default terminal is 256 colors
set -g default-terminal "screen-256color"
```
See the discussion [here](https://github.com/lifepillar/vim-solarized8/issues/4#issuecomment-985416964) for context.
## Hacking ## Hacking
Do you want to hack the theme? Install Do you want to hack the theme? Install
[Colortemplate](https://github.com/lifepillar/vim-colortemplate), edit the [Colortemplate v2](https://github.com/lifepillar/vim-colortemplate), edit the
`templates/*.colortemplate` files, then rebuild the color schemes. `templates/*.colortemplate` files, then rebuild the color schemes.
If you extend or improve Solarized 8, please consider submitting a pull request! If you extend or improve Solarized 8, please consider submitting a pull request!

View File

@@ -4,22 +4,24 @@
" Maintainer: Lifepillar <lifepillar@lifepillar.me> " Maintainer: Lifepillar <lifepillar@lifepillar.me>
" Website: https://github.com/lifepillar/vim-solarized8 " Website: https://github.com/lifepillar/vim-solarized8
" License: OSI approved MIT license " License: OSI approved MIT license
" Last Updated: Tue Mar 29 13:47:13 2022 " Last Updated: Tue Jun 6 14:37:46 2023
" Generated by Colortemplate v2.2.0 " Generated by Colortemplate v2.2.1
hi clear hi clear
let g:colors_name = 'solarized8' let g:colors_name = 'solarized8'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1 let s:t_Co = has('gui_running') ? -1 : get(g:, 'solarized_t_Co', get(g:, 't_Co', exists('&t_Co') ? +&t_Co : 0))
let s:italics = (&t_ZH != '' && &t_ZH != '') || has('gui_running') || has('nvim') let s:italics = (&t_ZH != '' && &t_ZH != '') || has('gui_running') || has('nvim')
let s:t_Co = get(g:, 'solarized_use16', 0) ? 16 : s:t_Co
let s:italics = s:italics && get(g:, 'solarized_italics', 1) let s:italics = s:italics && get(g:, 'solarized_italics', 1)
let s:termtrans = get(g:, 'solarized_termtrans', 0) && !has('gui_running') let s:termtrans = get(g:, 'solarized_termtrans', 0) && !has('gui_running')
hi! link Boolean Constant hi! link Boolean Constant
hi! link Character Constant hi! link Character Constant
hi! link Conditional Statement hi! link Conditional Statement
hi! link CurSearch Search
hi! link CursorLineFold FoldColumn
hi! link CursorLineSign SignColumn
hi! link Debug Special hi! link Debug Special
hi! link Define PreProc hi! link Define PreProc
hi! link Delimiter Special hi! link Delimiter Special
@@ -29,6 +31,8 @@ hi! link Function Identifier
hi! link Include PreProc hi! link Include PreProc
hi! link Keyword Statement hi! link Keyword Statement
hi! link Label Statement hi! link Label Statement
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link Macro PreProc hi! link Macro PreProc
hi! link Number Constant hi! link Number Constant
hi! link Operator Statement hi! link Operator Statement
@@ -44,6 +48,8 @@ hi! link String Constant
hi! link Structure Type hi! link Structure Type
hi! link Tag Special hi! link Tag Special
hi! link Typedef Type hi! link Typedef Type
hi! link debugBreakpoint SignColumn
hi! link debugPC SignColumn
hi! link lCursor Cursor hi! link lCursor Cursor
if &background ==# 'dark' if &background ==# 'dark'
@@ -2434,4 +2440,4 @@ endif
" Term Colors: base2 red green yellow blue magenta cyan base02 " Term Colors: base2 red green yellow blue magenta cyan base02
" Term Colors: base3 orange base1 base0 base00 violet base01 base03 " Term Colors: base3 orange base1 base0 base00 violet base01 base03
" Background: any " Background: any
" vim: et ts=2 sw=2 " vim: et ts=8 sw=2 sts=2

View File

@@ -4,22 +4,24 @@
" Maintainer: Lifepillar <lifepillar@lifepillar.me> " Maintainer: Lifepillar <lifepillar@lifepillar.me>
" Website: https://github.com/lifepillar/vim-solarized8 " Website: https://github.com/lifepillar/vim-solarized8
" License: OSI approved MIT license " License: OSI approved MIT license
" Last Updated: Tue Mar 29 13:47:15 2022 " Last Updated: Tue Jun 6 14:37:48 2023
" Generated by Colortemplate v2.2.0 " Generated by Colortemplate v2.2.1
hi clear hi clear
let g:colors_name = 'solarized8_flat' let g:colors_name = 'solarized8_flat'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1 let s:t_Co = has('gui_running') ? -1 : get(g:, 'solarized_t_Co', get(g:, 't_Co', exists('&t_Co') ? +&t_Co : 0))
let s:italics = (&t_ZH != '' && &t_ZH != '') || has('gui_running') || has('nvim') let s:italics = (&t_ZH != '' && &t_ZH != '') || has('gui_running') || has('nvim')
let s:t_Co = get(g:, 'solarized_use16', 0) ? 16 : s:t_Co
let s:italics = s:italics && get(g:, 'solarized_italics', 1) let s:italics = s:italics && get(g:, 'solarized_italics', 1)
let s:termtrans = get(g:, 'solarized_termtrans', 0) && !has('gui_running') let s:termtrans = get(g:, 'solarized_termtrans', 0) && !has('gui_running')
hi! link Boolean Constant hi! link Boolean Constant
hi! link Character Constant hi! link Character Constant
hi! link Conditional Statement hi! link Conditional Statement
hi! link CurSearch Search
hi! link CursorLineFold FoldColumn
hi! link CursorLineSign SignColumn
hi! link Debug Special hi! link Debug Special
hi! link Define PreProc hi! link Define PreProc
hi! link Delimiter Special hi! link Delimiter Special
@@ -29,6 +31,8 @@ hi! link Function Identifier
hi! link Include PreProc hi! link Include PreProc
hi! link Keyword Statement hi! link Keyword Statement
hi! link Label Statement hi! link Label Statement
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link Macro PreProc hi! link Macro PreProc
hi! link Number Constant hi! link Number Constant
hi! link Operator Statement hi! link Operator Statement
@@ -44,6 +48,8 @@ hi! link String Constant
hi! link Structure Type hi! link Structure Type
hi! link Tag Special hi! link Tag Special
hi! link Typedef Type hi! link Typedef Type
hi! link debugBreakpoint SignColumn
hi! link debugPC SignColumn
hi! link lCursor Cursor hi! link lCursor Cursor
if &background ==# 'dark' if &background ==# 'dark'
@@ -2332,4 +2338,4 @@ endif
" Term Colors: base2 red green yellow blue magenta cyan base02 " Term Colors: base2 red green yellow blue magenta cyan base02
" Term Colors: base3 orange base1 base0 base00 violet base01 base03 " Term Colors: base3 orange base1 base0 base00 violet base01 base03
" Background: any " Background: any
" vim: et ts=2 sw=2 " vim: et ts=8 sw=2 sts=2

View File

@@ -4,22 +4,24 @@
" Maintainer: Lifepillar <lifepillar@lifepillar.me> " Maintainer: Lifepillar <lifepillar@lifepillar.me>
" Website: https://github.com/lifepillar/vim-solarized8 " Website: https://github.com/lifepillar/vim-solarized8
" License: OSI approved MIT license " License: OSI approved MIT license
" Last Updated: Tue Mar 29 13:47:17 2022 " Last Updated: Tue Jun 6 14:37:51 2023
" Generated by Colortemplate v2.2.0 " Generated by Colortemplate v2.2.1
hi clear hi clear
let g:colors_name = 'solarized8_high' let g:colors_name = 'solarized8_high'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1 let s:t_Co = has('gui_running') ? -1 : get(g:, 'solarized_t_Co', get(g:, 't_Co', exists('&t_Co') ? +&t_Co : 0))
let s:italics = (&t_ZH != '' && &t_ZH != '') || has('gui_running') || has('nvim') let s:italics = (&t_ZH != '' && &t_ZH != '') || has('gui_running') || has('nvim')
let s:t_Co = get(g:, 'solarized_use16', 0) ? 16 : s:t_Co
let s:italics = s:italics && get(g:, 'solarized_italics', 1) let s:italics = s:italics && get(g:, 'solarized_italics', 1)
let s:termtrans = get(g:, 'solarized_termtrans', 0) && !has('gui_running') let s:termtrans = get(g:, 'solarized_termtrans', 0) && !has('gui_running')
hi! link Boolean Constant hi! link Boolean Constant
hi! link Character Constant hi! link Character Constant
hi! link Conditional Statement hi! link Conditional Statement
hi! link CurSearch Search
hi! link CursorLineFold FoldColumn
hi! link CursorLineSign SignColumn
hi! link Debug Special hi! link Debug Special
hi! link Define PreProc hi! link Define PreProc
hi! link Delimiter Special hi! link Delimiter Special
@@ -29,6 +31,8 @@ hi! link Function Identifier
hi! link Include PreProc hi! link Include PreProc
hi! link Keyword Statement hi! link Keyword Statement
hi! link Label Statement hi! link Label Statement
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link Macro PreProc hi! link Macro PreProc
hi! link Number Constant hi! link Number Constant
hi! link Operator Statement hi! link Operator Statement
@@ -44,6 +48,8 @@ hi! link String Constant
hi! link Structure Type hi! link Structure Type
hi! link Tag Special hi! link Tag Special
hi! link Typedef Type hi! link Typedef Type
hi! link debugBreakpoint SignColumn
hi! link debugPC SignColumn
hi! link lCursor Cursor hi! link lCursor Cursor
if &background ==# 'dark' if &background ==# 'dark'
@@ -2410,4 +2416,4 @@ endif
" Term Colors: base2 red green yellow blue magenta cyan base02 " Term Colors: base2 red green yellow blue magenta cyan base02
" Term Colors: base3 orange base1 base0 base00 violet base01 base03 " Term Colors: base3 orange base1 base0 base00 violet base01 base03
" Background: any " Background: any
" vim: et ts=2 sw=2 " vim: et ts=8 sw=2 sts=2

View File

@@ -4,22 +4,24 @@
" Maintainer: Lifepillar <lifepillar@lifepillar.me> " Maintainer: Lifepillar <lifepillar@lifepillar.me>
" Website: https://github.com/lifepillar/vim-solarized8 " Website: https://github.com/lifepillar/vim-solarized8
" License: OSI approved MIT license " License: OSI approved MIT license
" Last Updated: Tue Mar 29 13:47:19 2022 " Last Updated: Tue Jun 6 14:37:53 2023
" Generated by Colortemplate v2.2.0 " Generated by Colortemplate v2.2.1
hi clear hi clear
let g:colors_name = 'solarized8_low' let g:colors_name = 'solarized8_low'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1 let s:t_Co = has('gui_running') ? -1 : get(g:, 'solarized_t_Co', get(g:, 't_Co', exists('&t_Co') ? +&t_Co : 0))
let s:italics = (&t_ZH != '' && &t_ZH != '') || has('gui_running') || has('nvim') let s:italics = (&t_ZH != '' && &t_ZH != '') || has('gui_running') || has('nvim')
let s:t_Co = get(g:, 'solarized_use16', 0) ? 16 : s:t_Co
let s:italics = s:italics && get(g:, 'solarized_italics', 1) let s:italics = s:italics && get(g:, 'solarized_italics', 1)
let s:termtrans = get(g:, 'solarized_termtrans', 0) && !has('gui_running') let s:termtrans = get(g:, 'solarized_termtrans', 0) && !has('gui_running')
hi! link Boolean Constant hi! link Boolean Constant
hi! link Character Constant hi! link Character Constant
hi! link Conditional Statement hi! link Conditional Statement
hi! link CurSearch Search
hi! link CursorLineFold FoldColumn
hi! link CursorLineSign SignColumn
hi! link Debug Special hi! link Debug Special
hi! link Define PreProc hi! link Define PreProc
hi! link Delimiter Special hi! link Delimiter Special
@@ -29,6 +31,8 @@ hi! link Function Identifier
hi! link Include PreProc hi! link Include PreProc
hi! link Keyword Statement hi! link Keyword Statement
hi! link Label Statement hi! link Label Statement
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link Macro PreProc hi! link Macro PreProc
hi! link Number Constant hi! link Number Constant
hi! link Operator Statement hi! link Operator Statement
@@ -44,6 +48,8 @@ hi! link String Constant
hi! link Structure Type hi! link Structure Type
hi! link Tag Special hi! link Tag Special
hi! link Typedef Type hi! link Typedef Type
hi! link debugBreakpoint SignColumn
hi! link debugPC SignColumn
hi! link lCursor Cursor hi! link lCursor Cursor
if &background ==# 'dark' if &background ==# 'dark'
@@ -2410,4 +2416,4 @@ endif
" Term Colors: base2 red green yellow blue magenta cyan base02 " Term Colors: base2 red green yellow blue magenta cyan base02
" Term Colors: base3 orange base1 base0 base00 violet base01 base03 " Term Colors: base3 orange base1 base0 base00 violet base01 base03
" Background: any " Background: any
" vim: et ts=2 sw=2 " vim: et ts=8 sw=2 sts=2

View File

@@ -1,4 +1,4 @@
*solarized8.txt* For Vim version 8.2 Last change: 2022 May 03 *solarized8.txt* For Vim version 9.0 Last change: 2023 Jun 06
Solarized 8 color scheme Solarized 8 color scheme
@@ -53,11 +53,9 @@ terminal.
> >
let g:solarized_termtrans = 0 let g:solarized_termtrans = 0
< <
*g:solarized_use16* *g:solarized_t_Co*
Set to 1 if you want to force using the 16 ANSI terminal colors. Set this to tell the colorscheme how many colors are available.
>
let g:solarized_use16 = 0
<
*g:solarized_visibility* *g:solarized_visibility*
Tweak the visibility of a few elements. Allowed values are `"normal"` Tweak the visibility of a few elements. Allowed values are `"normal"`
(default), `"high"`, and `"low"`. (default), `"high"`, and `"low"`.

View File

@@ -1,5 +1,4 @@
; vim: ft=colortemplate fdm=marker ; vim: ft=colortemplate fdm=marker
#let s:t_Co = get(g:, '@optionprefix_use16', 0) ? 16 : s:t_Co
#let s:italics = s:italics && get(g:, '@optionprefix_italics', 1) #let s:italics = s:italics && get(g:, '@optionprefix_italics', 1)
#let s:termtrans = get(g:, '@optionprefix_termtrans', 0) && !has('gui_running') #let s:termtrans = get(g:, '@optionprefix_termtrans', 0) && !has('gui_running')
Include: _linked_groups.colortemplate Include: _linked_groups.colortemplate

View File

@@ -54,11 +54,9 @@ terminal.
> >
let g:@optionprefix_termtrans = 0 let g:@optionprefix_termtrans = 0
< <
*g:@optionprefix_use16* *g:@optionprefix_t_Co*
Set to 1 if you want to force using the 16 ANSI terminal colors. Set this to tell the colorscheme how many colors are available.
>
let g:@optionprefix_use16 = 0
<
*g:@optionprefix_visibility* *g:@optionprefix_visibility*
Tweak the visibility of a few elements. Allowed values are `"normal"` Tweak the visibility of a few elements. Allowed values are `"normal"`
(default), `"high"`, and `"low"`. (default), `"high"`, and `"low"`.