diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml
index a8780c3..36d42a1 100644
--- a/.github/workflows/doc.yml
+++ b/.github/workflows/doc.yml
@@ -7,8 +7,6 @@ on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches: [ main ]
- pull_request:
- branches: [ main ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
@@ -26,7 +24,7 @@ jobs:
- uses: actions/checkout@v2
- name: panvimdoc
- uses: kdheepak/panvimdoc@v2.6.0
+ uses: kdheepak/panvimdoc@v2.7.1
with:
# Output vimdoc project name
vimdoc: zenbones
diff --git a/README.md b/README.md
index ac12ceb..6f59db2 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,12 @@
-# Zenbones
+# Zenflesh, Zenbones
-Zenbones is a light vim/neovim
-[colorscheme](https://neovim.io/doc/user/syntax.html#:colorscheme) designed to
-highlight code using contrasts and font variations. Colors are tasked only for
-other roles such as diagnostics, diffs, search matches.
+Zenbones is a vim/neovim colorscheme designed to highlight code using contrasts
+and font variations. Colors are tasked only for other roles such as diagnostics,
+diffs, search matches.
-
+
A rock garden in Ryōan-ji.
@@ -43,85 +42,78 @@ use "rktjmp/lush.nvim"
Just apply the colorscheme as usual:
```vim
-colorscheme zenbones
+colorscheme zenbones " light
+colorscheme zenflesh " dark
```
If you want to make use of the lua version:
```vim
-" has('nvim') only
+" Requires `neovim` and `rktjmp/lush.nvim` installed
colorscheme zenbones-lush
+colorscheme zenflesh-lush
```
It works pretty much the same as the first one but pretty handy when extending
or customizing the colors to your likings.
-
-
-## Showcase
-
-**Diff highlights**
-
-
-
-**Search matches**
-
-
-
-**LSP diagnostics**
-
-
-
-_Font used is [Iosevka Curly Slab](https://typeof.net/Iosevka/)_.
-
-
-
## Configuration
-Configuration is only available for `zenbones-lush`.
+Configuration is only available for `zenbones-lush` and `zenflesh-lush`.
#### g:zenbones_lightness
Change background colors lightness.
-**'bright'**
+| 'bright' | _(unset)_ | 'dim' |
+| :-----------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------: |
+|  |  |  |
-
+#### g:zenflesh_darkness
-**Default** _(unset)_
+Change background colors darkness.
-
-
-**'dim'**
-
-
+| 'stark' | _(unset)_ | 'warm' |
+| :---------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------: |
+|  |  |  |
#### g:zenbones_solid_vert_split
-Set to `v:true` to make vertical split more visible with a dimmer background
+#### g:zenflesh_solid_vert_split
+
+Set to `v:true` to make vertical split more distinguishable background
highlight.
#### g:zenbones_dim_noncurrent_window
Set to `v:true` to make non-current window background dimmer than _Normal_.
+#### g:zenflesh_lighten_noncurrent_window
+
+Set to `v:true` to make non-current window background warmer than _Normal_.
+
+#### g:zenbones_italic_comments
+
+#### g:zenflesh_italic_comments
+
+Set to `v:false` to make comments not italicize.
+
## Advanced Usage
-Zenbones is pretty extensible thanks to
-[Lush](https://github.com/rktjmp/lush.nvim). You can easily retrieve the colors
+Zenbones is pretty extensible thanks to Lush. You can easily retrieve the colors
in lua:
```lua
-local theme = require "zenbones"
-local colors = require "zenbones.colors"
+local theme = require "zenbones" -- or zenflesh
+local palette = require "zenbones.palette"
print(theme.StatusLine.bg.hex)
-print(sand.darken(20).hex)
+print(palette.blossom.darken(20).hex)
```
See also
[Lush's documentation](https://github.com/rktjmp/lush.nvim#advanced-usage) for
-the complete options.
+more options.
## Other plugins support
@@ -145,48 +137,11 @@ currently supported.
## Other implementations
-- [iTerm2](extras/iterm/zenbones.itermcolors)
-- [Kitty](extras/kitty/zenbones.conf)
-- [Alacritty](extras/alacritty/zenbones.yml)
-- [WezTerm](extras/wezterm/Zenbones.toml)
-- [Tmux](extras/tmux/zenbones.tmux)
-
-### Print terminal colors
-
-You can retrieve the terminal colors by using this command:
-
-```vim
-:lua require("zenbones.print").print_terminal_colors()
-```
-
-Useful when you want to apply a zenbones theme to your terminal. Recent output:
-
-```
-Terminal colors
-foreground: #2C363C
-background: #F0EDEC
-ansi color0: #2C363C
-ansi color1: #A8334C
-ansi color2: #617437
-ansi color3: #944927
-ansi color4: #286486
-ansi color5: #88507D
-ansi color6: #3B8992
-ansi color7: #F0EDEC
-ansi color8: #44525B
-ansi color9: #9C2842
-ansi color10: #55672A
-ansi color11: #87411E
-ansi color12: #1F5A7A
-ansi color13: #864079
-ansi color14: #2F7C85
-ansi color15: #DCD2CE
-cursor foreground: #F2F0EF
-cursor background: #2C363C
-inactive cursor foreground: #F2F0EF
-inactive cursor background: #4D5C65
-selection background: #D2DFE7
-```
+- [iTerm2](extras/iterm)
+- [Kitty](extras/kitty)
+- [Alacritty](extras/alacritty)
+- [WezTerm](extras/wezterm)
+- [Tmux](extras/tmux)
It's also possible to generate color configuration files using a template,
[this one for Kitty](lua/zenbones/build/kitty.lua) for example. Please feel free
diff --git a/autoload/lightline/colorscheme/zenbones.vim b/autoload/lightline/colorscheme/zenbones.vim
index 53cb6de..95eb89f 100644
--- a/autoload/lightline/colorscheme/zenbones.vim
+++ b/autoload/lightline/colorscheme/zenbones.vim
@@ -10,7 +10,7 @@ let s:p.inactive.left = [ [ "#596A76", "#DAD3CF" ], [ "#596A76", "#DAD3CF" ] ]
let s:p.inactive.middle = [ [ "#596A76", "#DAD3CF" ] ]
let s:p.inactive.right = [ [ "#596A76", "#DAD3CF" ] ]
-let s:p.insert.left = [ [ "#564E4A", "#DDE6CD", "bold" ], [ "#564E4A", "#C4B6AF" ] ]
+let s:p.insert.left = [ [ "#564E4A", "#99C6E9", "bold" ], [ "#564E4A", "#C4B6AF" ] ]
let s:p.replace.left = [ [ "#564E4A", "#E7CBCE", "bold" ], [ "#564E4A", "#C4B6AF" ] ]
let s:p.visual.left = [ [ "#564E4A", "#D2DFE7", "bold" ], [ "#564E4A", "#C4B6AF" ] ]
diff --git a/autoload/lightline/colorscheme/zenflesh.vim b/autoload/lightline/colorscheme/zenflesh.vim
new file mode 100644
index 0000000..7d1fb15
--- /dev/null
+++ b/autoload/lightline/colorscheme/zenflesh.vim
@@ -0,0 +1,22 @@
+let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
+
+let s:p.normal.left = [ [ "#BBAEA8", "#716965", "bold" ], [ "#BBAEA8", "#4E4845" ] ]
+let s:p.normal.middle = [ [ "#B4BDC3", "#3D3836" ] ]
+let s:p.normal.right = [ [ "#BBAEA8", "#4E4845" ], [ "#BBAEA8", "#4E4845" ] ]
+let s:p.normal.warning = [ [ "#B77E64", "#362C28" ] ]
+let s:p.normal.error = [ [ "#DE6E7C", "#3A2A2C" ] ]
+
+let s:p.inactive.left = [ [ "#CAD0D4", "#312D2B" ], [ "#CAD0D4", "#312D2B" ] ]
+let s:p.inactive.middle = [ [ "#CAD0D4", "#312D2B" ] ]
+let s:p.inactive.right = [ [ "#CAD0D4", "#312D2B" ] ]
+
+let s:p.insert.left = [ [ "#BBAEA8", "#455C6F", "bold" ], [ "#BBAEA8", "#4E4845" ] ]
+let s:p.replace.left = [ [ "#BBAEA8", "#5B2E33", "bold" ], [ "#BBAEA8", "#4E4845" ] ]
+let s:p.visual.left = [ [ "#BBAEA8", "#37393B", "bold" ], [ "#BBAEA8", "#4E4845" ] ]
+
+let s:p.tabline.left = [ [ "#B4BDC3", "#4E4845", "italic" ] ]
+let s:p.tabline.middle = [ [ "#CAD0D4", "#312D2B" ] ]
+let s:p.tabline.right = [ [ "#B4BDC3", "#4E4845" ] ]
+let s:p.tabline.tabsel = [ [ "#B4BDC3", "#1C1918", "bold" ] ]
+
+let g:lightline#colorscheme#zenbones#palette = lightline#colorscheme#fill(s:p)
diff --git a/colors/zenbones.vim b/colors/zenbones.vim
index 8ff2985..eda4275 100644
--- a/colors/zenbones.vim
+++ b/colors/zenbones.vim
@@ -7,22 +7,22 @@ endif
set background=light
let g:colors_name = 'zenbones'
-let g:terminal_color_0 = '#2C363C'
+let g:terminal_color_0 = '#F0EDEC'
let g:terminal_color_1 = '#A8334C'
-let g:terminal_color_2 = '#617437'
+let g:terminal_color_2 = '#4F6C31'
let g:terminal_color_3 = '#944927'
let g:terminal_color_4 = '#286486'
let g:terminal_color_5 = '#88507D'
let g:terminal_color_6 = '#3B8992'
-let g:terminal_color_7 = '#F0EDEC'
-let g:terminal_color_8 = '#44525B'
-let g:terminal_color_9 = '#9C2842'
-let g:terminal_color_10 = '#55672A'
-let g:terminal_color_11 = '#87411E'
-let g:terminal_color_12 = '#1F5A7A'
-let g:terminal_color_13 = '#864079'
-let g:terminal_color_14 = '#2F7C85'
-let g:terminal_color_15 = '#DCD2CE'
+let g:terminal_color_7 = '#2C363C'
+let g:terminal_color_8 = '#CFC1BA'
+let g:terminal_color_9 = '#94253E'
+let g:terminal_color_10 = '#3F5A22'
+let g:terminal_color_11 = '#803D1C'
+let g:terminal_color_12 = '#1D5573'
+let g:terminal_color_13 = '#7B3B70'
+let g:terminal_color_14 = '#2B747C'
+let g:terminal_color_15 = '#4F5E68'
if has('terminal')
let g:terminal_ansi_colors = [
@@ -49,20 +49,16 @@ highlight Bold guifg=NONE guibg=NONE guisp=NONE gui=bold
highlight BufferVisible guifg=#596A76 guibg=NONE guisp=NONE gui=NONE
highlight BufferVisibleIndex guifg=#596A76 guibg=NONE guisp=NONE gui=NONE
highlight BufferVisibleSign guifg=#596A76 guibg=NONE guisp=NONE gui=NONE
-highlight CocErrorHighlight guifg=#A8334C guibg=NONE guisp=NONE gui=underline
-highlight CocHintHighlight guifg=#88507D guibg=NONE guisp=NONE gui=underline
-highlight CocInfoHighlight guifg=#286486 guibg=NONE guisp=NONE gui=underline
highlight CocMarkdownLink guifg=#3B8992 guibg=NONE guisp=NONE gui=underline
-highlight CocWarningHighlight guifg=#944927 guibg=NONE guisp=NONE gui=underline
highlight ColorColumn guifg=NONE guibg=#EFD8D3 guisp=NONE gui=NONE
highlight Comment guifg=#948985 guibg=NONE guisp=NONE gui=italic
highlight Conceal guifg=#4D5C65 guibg=NONE guisp=NONE gui=bold,italic
-highlight Constant guifg=#53636D guibg=NONE guisp=NONE gui=italic
+highlight Constant guifg=#556570 guibg=NONE guisp=NONE gui=italic
highlight Cursor guifg=#F2F0EF guibg=#2C363C guisp=NONE gui=NONE
highlight CursorLine guifg=NONE guibg=#E6E1DF guisp=NONE gui=NONE
highlight CursorLineNr guifg=#2C363C guibg=NONE guisp=NONE gui=bold
highlight Delimiter guifg=#8E817B guibg=NONE guisp=NONE gui=NONE
-highlight DiffAdd guifg=NONE guibg=#DDE6CD guisp=NONE gui=NONE
+highlight DiffAdd guifg=NONE guibg=#D8E7CD guisp=NONE gui=NONE
highlight DiffChange guifg=NONE guibg=#C0DAF2 guisp=NONE gui=NONE
highlight DiffDelete guifg=NONE guibg=#E7CBCE guisp=NONE gui=NONE
highlight DiffText guifg=#2C363C guibg=#99C6E9 guisp=NONE gui=NONE
@@ -72,7 +68,7 @@ highlight FloatBorder guifg=#786D68 guibg=NONE guisp=NONE gui=NONE
highlight FoldColumn guifg=#A79891 guibg=NONE guisp=NONE gui=bold
highlight Folded guifg=#564E4A guibg=#CDC2BC guisp=NONE gui=NONE
highlight Function guifg=#2C363C guibg=NONE guisp=NONE gui=NONE
-highlight GitSignsAdd guifg=#617437 guibg=NONE guisp=NONE gui=NONE
+highlight GitSignsAdd guifg=#4F6C31 guibg=NONE guisp=NONE gui=NONE
highlight GitSignsChange guifg=#286486 guibg=NONE guisp=NONE gui=NONE
highlight GitSignsDelete guifg=#A8334C guibg=NONE guisp=NONE gui=NONE
highlight HopNextKey2 guifg=#286486 guibg=NONE guisp=NONE gui=NONE
@@ -97,11 +93,12 @@ highlight LspDiagnosticsUnderlineInformation guifg=#286486 guibg=NONE guisp=NONE
highlight LspDiagnosticsUnderlineWarning guifg=#944927 guibg=NONE guisp=NONE gui=undercurl
highlight LspDiagnosticsVirtualTextError guifg=#A8334C guibg=#E7DDDE guisp=NONE gui=NONE
highlight LspDiagnosticsVirtualTextWarning guifg=#944927 guibg=#F0E6E4 guisp=NONE gui=NONE
-highlight MoreMsg guifg=#617437 guibg=NONE guisp=NONE gui=bold
+highlight MoreMsg guifg=#4F6C31 guibg=NONE guisp=NONE gui=bold
highlight NeogitHunkHeaderHighlight guifg=#2C363C guibg=#E6E1DF guisp=NONE gui=bold
highlight NonText guifg=#C0B0A8 guibg=NONE guisp=NONE gui=NONE
highlight Normal guifg=#2C363C guibg=#F0EDEC guisp=NONE gui=NONE
highlight NormalFloat guifg=NONE guibg=#E1DCD9 guisp=NONE gui=NONE
+highlight Number guifg=NONE guibg=NONE guisp=NONE gui=italic
highlight Pmenu guifg=NONE guibg=#DAD3CF guisp=NONE gui=NONE
highlight PmenuSbar guifg=NONE guibg=#B2A39B guisp=NONE gui=NONE
highlight PmenuSel guifg=NONE guibg=#C4B6AF guisp=NONE gui=NONE
@@ -125,27 +122,31 @@ highlight Title guifg=NONE guibg=NONE guisp=NONE gui=bold
highlight Todo guifg=NONE guibg=NONE guisp=NONE gui=bold,underline
highlight Type guifg=#5C534F guibg=NONE guisp=NONE gui=NONE
highlight Underlined guifg=NONE guibg=NONE guisp=NONE gui=underline
-highlight VertSplit guifg=#F7F6F5 guibg=NONE guisp=NONE gui=NONE
highlight Visual guifg=NONE guibg=#D2DFE7 guisp=NONE gui=NONE
highlight WarningMsg guifg=#944927 guibg=NONE guisp=NONE gui=NONE
highlight WildMenu guifg=#F0EDEC guibg=#88507D guisp=NONE gui=NONE
-highlight diffAdded guifg=#617437 guibg=NONE guisp=NONE gui=NONE
+highlight diffAdded guifg=#4F6C31 guibg=NONE guisp=NONE gui=NONE
highlight diffChanged guifg=#286486 guibg=NONE guisp=NONE gui=NONE
highlight diffFile guifg=#944927 guibg=NONE guisp=NONE gui=bold
highlight diffIndexLine guifg=#944927 guibg=NONE guisp=NONE gui=NONE
highlight diffLine guifg=#88507D guibg=NONE guisp=NONE gui=bold
-highlight diffNewFile guifg=#617437 guibg=NONE guisp=NONE gui=italic
+highlight diffNewFile guifg=#4F6C31 guibg=NONE guisp=NONE gui=italic
highlight diffOldFile guifg=#A8334C guibg=NONE guisp=NONE gui=italic
highlight diffRemoved guifg=#A8334C guibg=NONE guisp=NONE gui=NONE
highlight lCursor guifg=#F2F0EF guibg=#4D5C65 guisp=NONE gui=NONE
highlight markdownH1 guifg=#2C363C guibg=NONE guisp=NONE gui=bold,underline
+highlight! link Boolean Number
highlight! link BufferCurrent TabLineSel
highlight! link CocCodeLens LineNr
+highlight! link CocErrorHighlight LspDiagnosticsUnderlineError
highlight! link CocErrorSign LspDiagnosticsDefaultError
highlight! link CocErrorVirtualText LspDiagnosticsVirtualTextError
+highlight! link CocHintHighlight LspDiagnosticsUnderlineHint
highlight! link CocHintSign LspDiagnosticsDefaultHint
+highlight! link CocInfoHighlight LspDiagnosticsUnderlineInformation
highlight! link CocInfoSign LspDiagnosticsDefaultInformation
highlight! link CocSelectedText SpellBad
+highlight! link CocWarningHighlight LspDiagnosticsUnderlineWarning
highlight! link CocWarningSign LspDiagnosticsDefaultWarning
highlight! link CocWarningVitualText LspDiagnosticsVirtualTextWarning
highlight! link CursorColumn CursorLine
@@ -192,6 +193,7 @@ highlight! link TermCursor Cursor
highlight! link TroubleNormal Function
highlight! link TroubleSource Constant
highlight! link TroubleText Function
+highlight! link VertSplit LineNr
highlight! link WhichKey Statement
highlight! link WhichKeyGroup Special
highlight! link WhichKeySeparator LineNr
diff --git a/colors/zenflesh-lush.lua b/colors/zenflesh-lush.lua
new file mode 100644
index 0000000..fc45182
--- /dev/null
+++ b/colors/zenflesh-lush.lua
@@ -0,0 +1,21 @@
+vim.opt.background = "dark"
+vim.g.colors_name = "zenflesh-lush"
+
+require("zenflesh.terminal").setup()
+
+-- By setting our module to nil, we clear lua's cache,
+-- which means the require ahead will *always* occur.
+--
+-- This isn't strictly required but it can be a useful trick if you are
+-- incrementally editing your config a lot and want to be sure your themes
+-- changes are being picked up without restarting neovim.
+--
+-- Note if you're working in on your theme and have :Lushify'd the buffer,
+-- your changes will be applied with our without the following line.
+--
+-- The performance impact of this call can be measured in the hundreds of
+-- *nanoseconds* and such could be considered "production safe".
+package.loaded["zenflesh"] = nil
+
+-- include our theme file and pass it to lush to apply
+require "lush"(require "zenflesh")
diff --git a/colors/zenflesh.vim b/colors/zenflesh.vim
new file mode 100644
index 0000000..281fd99
--- /dev/null
+++ b/colors/zenflesh.vim
@@ -0,0 +1,214 @@
+if exists('g:colors_name')
+ highlight clear
+ syntax reset
+ set t_Co=256
+endif
+
+set background=dark
+let g:colors_name = 'zenflesh'
+
+let g:terminal_color_0 = '#1C1918'
+let g:terminal_color_1 = '#DE6E7C'
+let g:terminal_color_2 = '#819B69'
+let g:terminal_color_3 = '#B77E64'
+let g:terminal_color_4 = '#6099C0'
+let g:terminal_color_5 = '#B279A7'
+let g:terminal_color_6 = '#66A5AD'
+let g:terminal_color_7 = '#B4BDC3'
+let g:terminal_color_8 = '#3E3834'
+let g:terminal_color_9 = '#E8838F'
+let g:terminal_color_10 = '#8BAE68'
+let g:terminal_color_11 = '#D68C67'
+let g:terminal_color_12 = '#61ABDA'
+let g:terminal_color_13 = '#CF86C1'
+let g:terminal_color_14 = '#65B8C1'
+let g:terminal_color_15 = '#888F94'
+
+if has('terminal')
+ let g:terminal_ansi_colors = [
+ \ g:terminal_color_0,
+ \ g:terminal_color_1,
+ \ g:terminal_color_2,
+ \ g:terminal_color_3,
+ \ g:terminal_color_4,
+ \ g:terminal_color_5,
+ \ g:terminal_color_6,
+ \ g:terminal_color_7,
+ \ g:terminal_color_8,
+ \ g:terminal_color_9,
+ \ g:terminal_color_10,
+ \ g:terminal_color_11,
+ \ g:terminal_color_12,
+ \ g:terminal_color_13,
+ \ g:terminal_color_14,
+ \ g:terminal_color_15
+ \ ]
+endif
+
+highlight Bold guifg=NONE guibg=NONE guisp=NONE gui=bold
+highlight BufferVisible guifg=#CAD0D4 guibg=NONE guisp=NONE gui=NONE
+highlight BufferVisibleIndex guifg=#CAD0D4 guibg=NONE guisp=NONE gui=NONE
+highlight BufferVisibleSign guifg=#CAD0D4 guibg=NONE guisp=NONE gui=NONE
+highlight CocMarkdownLink guifg=#66A5AD guibg=NONE guisp=NONE gui=underline
+highlight ColorColumn guifg=NONE guibg=#675047 guisp=NONE gui=NONE
+highlight Comment guifg=#6C6765 guibg=NONE guisp=NONE gui=italic
+highlight Conceal guifg=#8D9499 guibg=NONE guisp=NONE gui=bold,italic
+highlight Constant guifg=#868C91 guibg=NONE guisp=NONE gui=italic
+highlight Cursor guifg=#171514 guibg=#C4CACF guisp=NONE gui=NONE
+highlight CursorLine guifg=NONE guibg=#24211F guisp=NONE gui=NONE
+highlight CursorLineNr guifg=#B4BDC3 guibg=NONE guisp=NONE gui=bold
+highlight Delimiter guifg=#8E8480 guibg=NONE guisp=NONE gui=NONE
+highlight DiffAdd guifg=NONE guibg=#333C2C guisp=NONE gui=NONE
+highlight DiffChange guifg=NONE guibg=#2D404E guisp=NONE gui=NONE
+highlight DiffDelete guifg=NONE guibg=#5B2E33 guisp=NONE gui=NONE
+highlight DiffText guifg=#B4BDC3 guibg=#455C6F guisp=NONE gui=NONE
+highlight Directory guifg=NONE guibg=NONE guisp=NONE gui=bold
+highlight Error guifg=#DE6E7C guibg=NONE guisp=NONE gui=NONE
+highlight FloatBorder guifg=#817873 guibg=NONE guisp=NONE gui=NONE
+highlight FoldColumn guifg=#5A5350 guibg=NONE guisp=NONE gui=bold
+highlight Folded guifg=#BBAEA8 guibg=#3D3836 guisp=NONE gui=NONE
+highlight Function guifg=#B4BDC3 guibg=NONE guisp=NONE gui=NONE
+highlight GitSignsAdd guifg=#819B69 guibg=NONE guisp=NONE gui=NONE
+highlight GitSignsChange guifg=#6099C0 guibg=NONE guisp=NONE gui=NONE
+highlight GitSignsDelete guifg=#DE6E7C guibg=NONE guisp=NONE gui=NONE
+highlight HopNextKey2 guifg=#6099C0 guibg=NONE guisp=NONE gui=NONE
+highlight Identifier guifg=#979FA4 guibg=NONE guisp=NONE gui=NONE
+highlight IncSearch guifg=#1C1918 guibg=#B279A7 guisp=NONE gui=bold
+highlight IndentBlanklineChar guifg=#373432 guibg=NONE guisp=NONE gui=NONE
+highlight Italic guifg=NONE guibg=NONE guisp=NONE gui=italic
+highlight LightspeedGreyWash guifg=#6C6765 guibg=NONE guisp=NONE gui=NONE
+highlight LightspeedLabel guifg=#B279A7 guibg=NONE guisp=NONE gui=bold,underline
+highlight LightspeedLabelDistant guifg=#66A5AD guibg=NONE guisp=NONE gui=bold,underline
+highlight LightspeedLabelDistantOverlapped guifg=#66A5AD guibg=NONE guisp=NONE gui=underline
+highlight LightspeedLabelOverlapped guifg=#B279A7 guibg=NONE guisp=NONE gui=underline
+highlight LightspeedOneCharMatch guifg=#1C1918 guibg=#B279A7 guisp=NONE gui=bold
+highlight LightspeedPendingChangeOpArea guifg=#B279A7 guibg=NONE guisp=NONE gui=NONE
+highlight LightspeedShortcut guifg=#1C1918 guibg=#B279A7 guisp=NONE gui=bold,underline
+highlight LineNr guifg=#5A5350 guibg=NONE guisp=NONE gui=NONE
+highlight LspDiagnosticsDefaultHint guifg=#B279A7 guibg=NONE guisp=NONE gui=NONE
+highlight LspDiagnosticsDefaultInformation guifg=#6099C0 guibg=NONE guisp=NONE gui=NONE
+highlight LspDiagnosticsUnderlineError guifg=#DE6E7C guibg=NONE guisp=NONE gui=undercurl
+highlight LspDiagnosticsUnderlineHint guifg=#B279A7 guibg=NONE guisp=NONE gui=undercurl
+highlight LspDiagnosticsUnderlineInformation guifg=#6099C0 guibg=NONE guisp=NONE gui=undercurl
+highlight LspDiagnosticsUnderlineWarning guifg=#B77E64 guibg=NONE guisp=NONE gui=undercurl
+highlight LspDiagnosticsVirtualTextError guifg=#DE6E7C guibg=#3A2A2C guisp=NONE gui=NONE
+highlight LspDiagnosticsVirtualTextWarning guifg=#B77E64 guibg=#362C28 guisp=NONE gui=NONE
+highlight MoreMsg guifg=#819B69 guibg=NONE guisp=NONE gui=bold
+highlight NeogitHunkHeaderHighlight guifg=#B4BDC3 guibg=#24211F guisp=NONE gui=bold
+highlight NonText guifg=#524C4A guibg=NONE guisp=NONE gui=NONE
+highlight Normal guifg=#B4BDC3 guibg=#1C1918 guisp=NONE gui=NONE
+highlight NormalFloat guifg=NONE guibg=#2B2725 guisp=NONE gui=NONE
+highlight Number guifg=NONE guibg=NONE guisp=NONE gui=italic
+highlight Pmenu guifg=NONE guibg=#34302E guisp=NONE gui=NONE
+highlight PmenuSbar guifg=NONE guibg=#716965 guisp=NONE gui=NONE
+highlight PmenuSel guifg=NONE guibg=#4E4845 guisp=NONE gui=NONE
+highlight PmenuThumb guifg=NONE guibg=#8B827D guisp=NONE gui=NONE
+highlight Search guifg=#B4BDC3 guibg=#73516C guisp=NONE gui=NONE
+highlight SneakLabelMask guifg=#B279A7 guibg=#B279A7 guisp=NONE gui=NONE
+highlight Special guifg=#9CA4AA guibg=NONE guisp=NONE gui=bold
+highlight SpecialComment guifg=#6C6765 guibg=NONE guisp=NONE gui=bold
+highlight SpecialKey guifg=#524C4A guibg=NONE guisp=NONE gui=italic
+highlight SpellBad guifg=#CB7A83 guibg=NONE guisp=NONE gui=undercurl
+highlight SpellCap guifg=#CB7A83 guibg=NONE guisp=NONE gui=undercurl
+highlight SpellRare guifg=#CB7A83 guibg=NONE guisp=NONE gui=undercurl
+highlight Statement guifg=#B4BDC3 guibg=NONE guisp=NONE gui=bold
+highlight StatusLine guifg=#B4BDC3 guibg=#3D3836 guisp=NONE gui=NONE
+highlight StatusLineNC guifg=#CAD0D4 guibg=#312D2B guisp=NONE gui=NONE
+highlight TabLine guifg=#B4BDC3 guibg=#3D3836 guisp=NONE gui=italic
+highlight TabLineSel guifg=NONE guibg=NONE guisp=NONE gui=bold
+highlight TelescopeMatching guifg=#B279A7 guibg=NONE guisp=NONE gui=bold
+highlight TelescopeSelectionCaret guifg=#DE6E7C guibg=#24211F guisp=NONE gui=NONE
+highlight Title guifg=NONE guibg=NONE guisp=NONE gui=bold
+highlight Todo guifg=NONE guibg=NONE guisp=NONE gui=bold,underline
+highlight Type guifg=#9E948F guibg=NONE guisp=NONE gui=NONE
+highlight Underlined guifg=NONE guibg=NONE guisp=NONE gui=underline
+highlight Visual guifg=NONE guibg=#37393B guisp=NONE gui=NONE
+highlight WarningMsg guifg=#B77E64 guibg=NONE guisp=NONE gui=NONE
+highlight WildMenu guifg=#1C1918 guibg=#B279A7 guisp=NONE gui=NONE
+highlight diffAdded guifg=#819B69 guibg=NONE guisp=NONE gui=NONE
+highlight diffChanged guifg=#6099C0 guibg=NONE guisp=NONE gui=NONE
+highlight diffFile guifg=#B77E64 guibg=NONE guisp=NONE gui=bold
+highlight diffIndexLine guifg=#B77E64 guibg=NONE guisp=NONE gui=NONE
+highlight diffLine guifg=#B279A7 guibg=NONE guisp=NONE gui=bold
+highlight diffNewFile guifg=#819B69 guibg=NONE guisp=NONE gui=italic
+highlight diffOldFile guifg=#DE6E7C guibg=NONE guisp=NONE gui=italic
+highlight diffRemoved guifg=#DE6E7C guibg=NONE guisp=NONE gui=NONE
+highlight lCursor guifg=#171514 guibg=#797F84 guisp=NONE gui=NONE
+highlight markdownH1 guifg=#B4BDC3 guibg=NONE guisp=NONE gui=bold,underline
+highlight! link Boolean Number
+highlight! link BufferCurrent TabLineSel
+highlight! link CocCodeLens LineNr
+highlight! link CocErrorHighlight LspDiagnosticsUnderlineError
+highlight! link CocErrorSign LspDiagnosticsDefaultError
+highlight! link CocErrorVirtualText LspDiagnosticsVirtualTextError
+highlight! link CocHintHighlight LspDiagnosticsUnderlineHint
+highlight! link CocHintSign LspDiagnosticsDefaultHint
+highlight! link CocInfoHighlight LspDiagnosticsUnderlineInformation
+highlight! link CocInfoSign LspDiagnosticsDefaultInformation
+highlight! link CocSelectedText SpellBad
+highlight! link CocWarningHighlight LspDiagnosticsUnderlineWarning
+highlight! link CocWarningSign LspDiagnosticsDefaultWarning
+highlight! link CocWarningVitualText LspDiagnosticsVirtualTextWarning
+highlight! link CursorColumn CursorLine
+highlight! link EndOfBuffer NonText
+highlight! link ErrorMsg Error
+highlight! link GitGutterAdd GitSignsAdd
+highlight! link GitGutterChange GitSignsChange
+highlight! link GitGutterDelete GitSignsDelete
+highlight! link HopNextKey LightspeedLabel
+highlight! link HopNextKey1 LightspeedLabelDistant
+highlight! link HopUnmatched LightspeedGreyWash
+highlight! link LightspeedMaskedChar Conceal
+highlight! link LightspeedPendingOpArea SneakLabel
+highlight! link LightspeedUnlabeledMatch Bold
+highlight! link LspCodeLens LineNr
+highlight! link LspDiagnosticsDefaultError Error
+highlight! link LspDiagnosticsDefaultWarning WarningMsg
+highlight! link LspReferenceRead ColorColumn
+highlight! link LspReferenceText ColorColumn
+highlight! link LspReferenceWrite ColorColumn
+highlight! link MatchParen Search
+highlight! link NeogitDiffAddHighlight DiffAdd
+highlight! link NeogitDiffContextHighlight CursorLine
+highlight! link NeogitDiffDeleteHighlight DiffDelete
+highlight! link NeogitHunkHeader LineNr
+highlight! link NeogitNotificationError LspDiagnosticsDefaultError
+highlight! link NeogitNotificationInfo LspDiagnosticsDefaultInformation
+highlight! link NeogitNotificationWarning LspDiagnosticsDefaultWarning
+highlight! link PreProc Statement
+highlight! link Question MoreMsg
+highlight! link SignColumn LineNr
+highlight! link Sneak Search
+highlight! link SneakLabel WildMenu
+highlight! link SpellLocal SpellCap
+highlight! link TSDanger Error
+highlight! link TSNote LspDiagnosticsDefaultInformation
+highlight! link TSTag Special
+highlight! link TSVariable Identifier
+highlight! link TSWarning WarningMsg
+highlight! link TabLineFill StatusLineNC
+highlight! link TelescopeBorder FloatBorder
+highlight! link TelescopeSelection CursorLine
+highlight! link TermCursor Cursor
+highlight! link TermCursorNC lCursor
+highlight! link TroubleNormal Function
+highlight! link TroubleSource Constant
+highlight! link TroubleText Function
+highlight! link VertSplit LineNr
+highlight! link WhichKey Statement
+highlight! link WhichKeyGroup Special
+highlight! link WhichKeySeparator LineNr
+highlight! link WhichKeyValue Constant
+highlight! link Whitespace NonText
+highlight! link gitcommitOverflow WarningMsg
+highlight! link helpHyperTextEntry Special
+highlight! link helpHyperTextJump Constant
+highlight! link helpOption Constant
+highlight! link helpSpecial Type
+highlight! link markdownCode Identifier
+highlight! link markdownH2 Statement
+highlight! link markdownH3 Statement
+highlight! link markdownH4 Special
+highlight! link markdownH5 Special
+highlight! link markdownH6 Special
+highlight! link markdownLinkTextDelimiter Delimiter
diff --git a/doc/zenbones.txt b/doc/zenbones.txt
index 865ef09..48284ca 100644
--- a/doc/zenbones.txt
+++ b/doc/zenbones.txt
@@ -1,4 +1,4 @@
-*zenbones.txt* For NVIM v0.4.3 Last change: 2021 September 10
+*zenbones.txt* For NVIM v0.4.3 Last change: 2021 September 12
==============================================================================
Table of Contents *zenbones-table-of-contents*
@@ -58,7 +58,7 @@ Just apply the colorscheme as usual:
If you want to make use of the lua version:
>
- " has('nvim') only
+ " Requires `neovim` and `rktjmp/lush.nvim` installed
colorscheme zenbones-lush
<
@@ -105,21 +105,20 @@ g:zenbones_dim_noncurrent_window Set to `v:true` to make non-current
ADVANCED USAGE *zenbones-advanced-usage*
-Zenbones is pretty extensible thanks to Lush
-. You can easily retrieve the colors in
-lua:
+Zenbones is pretty extensible thanks to Lush. You can easily retrieve the
+colors in lua:
>
local theme = require "zenbones"
- local colors = require "zenbones.colors"
+ local palette = require "zenbones.palette"
print(theme.StatusLine.bg.hex)
- print(sand.darken(20).hex)
+ print(palette.sand.darken(20).hex)
<
See also Lush’s documentation
- for the complete options.
+ for more options.
OTHER PLUGINS SUPPORT *zenbones-other-plugins-support*
diff --git a/extras/alacritty/zenbones.yml b/extras/alacritty/zenbones.yml
index 68c88be..a33ef17 100644
--- a/extras/alacritty/zenbones.yml
+++ b/extras/alacritty/zenbones.yml
@@ -1,4 +1,4 @@
-# Zenbones Alacritty Colors
+# zenbones alacritty colors
colors:
# Default colors
primary:
@@ -6,21 +6,21 @@ colors:
foreground: '#2C363C'
# Normal colors
normal:
- black: '#2C363C'
+ black: '#F0EDEC'
red: '#A8334C'
- green: '#617437'
+ green: '#4F6C31'
yellow: '#944927'
blue: '#286486'
magenta: '#88507D'
cyan: '#3B8992'
- white: '#F0EDEC'
+ white: '#2C363C'
# Bright colors
bright:
- black: '#44525B'
- red: '#9C2842'
- green: '#55672A'
- yellow: '#87411E'
- blue: '#1F5A7A'
- magenta: '#864079'
- cyan: '#2F7C85'
- white: '#DCD2CE'
+ black: '#CFC1BA'
+ red: '#94253E'
+ green: '#3F5A22'
+ yellow: '#803D1C'
+ blue: '#1D5573'
+ magenta: '#7B3B70'
+ cyan: '#2B747C'
+ white: '#4F5E68'
diff --git a/extras/alacritty/zenflesh.yml b/extras/alacritty/zenflesh.yml
new file mode 100644
index 0000000..f734588
--- /dev/null
+++ b/extras/alacritty/zenflesh.yml
@@ -0,0 +1,26 @@
+# zenflesh alacritty colors
+colors:
+ # Default colors
+ primary:
+ background: '#1C1918'
+ foreground: '#B4BDC3'
+ # Normal colors
+ normal:
+ black: '#1C1918'
+ red: '#DE6E7C'
+ green: '#819B69'
+ yellow: '#B77E64'
+ blue: '#6099C0'
+ magenta: '#B279A7'
+ cyan: '#66A5AD'
+ white: '#B4BDC3'
+ # Bright colors
+ bright:
+ black: '#3E3834'
+ red: '#E8838F'
+ green: '#8BAE68'
+ yellow: '#D68C67'
+ blue: '#61ABDA'
+ magenta: '#CF86C1'
+ cyan: '#65B8C1'
+ white: '#888F94'
diff --git a/extras/iterm/zenbones.itermcolors b/extras/iterm/zenbones.itermcolors
index f245547..169af5f 100644
--- a/extras/iterm/zenbones.itermcolors
+++ b/extras/iterm/zenbones.itermcolors
@@ -7,13 +7,13 @@
Alpha Component
1
Blue Component
- 0.23529411852359772
+ 0.92549020051956177
Color Space
sRGB
Green Component
- 0.21176470816135406
+ 0.92941176891326904
Red Component
- 0.17254902422428131
+ 0.94117647409439087
Ansi 1 Color
@@ -33,91 +33,91 @@
Alpha Component
1
Blue Component
- 0.16470588743686676
+ 0.13333334028720856
Color Space
sRGB
Green Component
- 0.40392157435417175
+ 0.35294118523597717
Red Component
- 0.3333333432674408
+ 0.24705882370471954
Ansi 11 Color
Alpha Component
1
Blue Component
- 0.11764705926179886
+ 0.10980392247438431
Color Space
sRGB
Green Component
- 0.25490197539329529
+ 0.23921568691730499
Red Component
- 0.52941179275512695
+ 0.50196081399917603
Ansi 12 Color
Alpha Component
1
Blue Component
- 0.47843137383460999
+ 0.45098039507865906
Color Space
sRGB
Green Component
- 0.35294118523597717
+ 0.3333333432674408
Red Component
- 0.12156862765550613
+ 0.11372549086809158
Ansi 13 Color
Alpha Component
1
Blue Component
- 0.47450980544090271
+ 0.43921568989753723
Color Space
sRGB
Green Component
- 0.25098040699958801
+ 0.23137255012989044
Red Component
- 0.52549022436141968
+ 0.48235294222831726
Ansi 14 Color
Alpha Component
1
Blue Component
- 0.5215686559677124
+ 0.48627451062202454
Color Space
sRGB
Green Component
- 0.48627451062202454
+ 0.45490196347236633
Red Component
- 0.18431372940540314
+ 0.16862745583057404
Ansi 15 Color
Alpha Component
1
Blue Component
- 0.80784314870834351
+ 0.40784314274787903
Color Space
sRGB
Green Component
- 0.82352942228317261
+ 0.36862745881080627
Red Component
- 0.86274510622024536
+ 0.30980393290519714
Ansi 2 Color
Alpha Component
1
Blue Component
- 0.21568627655506134
+ 0.19215686619281769
Color Space
sRGB
Green Component
- 0.45490196347236633
+ 0.42352941632270813
Red Component
- 0.3803921639919281
+ 0.30980393290519714
Ansi 3 Color
@@ -176,39 +176,39 @@
Alpha Component
1
Blue Component
- 0.92549020051956177
+ 0.23529411852359772
Color Space
sRGB
Green Component
- 0.92941176891326904
+ 0.21176470816135406
Red Component
- 0.94117647409439087
+ 0.17254902422428131
Ansi 8 Color
Alpha Component
1
Blue Component
- 0.35686275362968445
+ 0.729411780834198
Color Space
sRGB
Green Component
- 0.32156863808631897
+ 0.75686275959014893
Red Component
- 0.26666668057441711
+ 0.81176471710205078
Ansi 9 Color
Alpha Component
1
Blue Component
- 0.25882354378700256
+ 0.24313725531101227
Color Space
sRGB
Green Component
- 0.15686275064945221
+ 0.14509804546833038
Red Component
- 0.61176472902297974
+ 0.58039218187332153
Background Color
@@ -345,13 +345,13 @@
Alpha Component
1
Blue Component
- 0.96956521272659302
+ 0.92549020051956177
Color Space
sRGB
Green Component
- 0.97826087474822998
+ 0.92941176891326904
Red Component
- 1
+ 0.94117647409439087
diff --git a/extras/iterm/zenflesh.itermcolors b/extras/iterm/zenflesh.itermcolors
new file mode 100644
index 0000000..cf305ff
--- /dev/null
+++ b/extras/iterm/zenflesh.itermcolors
@@ -0,0 +1,357 @@
+
+
+
+
+ Ansi 0 Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.094117648899555206
+ Color Space
+ sRGB
+ Green Component
+ 0.098039217293262482
+ Red Component
+ 0.10980392247438431
+
+ Ansi 1 Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.48627451062202454
+ Color Space
+ sRGB
+ Green Component
+ 0.43137255311012268
+ Red Component
+ 0.87058824300765991
+
+ Ansi 10 Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.40784314274787903
+ Color Space
+ sRGB
+ Green Component
+ 0.68235296010971069
+ Red Component
+ 0.54509806632995605
+
+ Ansi 11 Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.40392157435417175
+ Color Space
+ sRGB
+ Green Component
+ 0.54901963472366333
+ Red Component
+ 0.83921569585800171
+
+ Ansi 12 Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.85490196943283081
+ Color Space
+ sRGB
+ Green Component
+ 0.67058825492858887
+ Red Component
+ 0.3803921639919281
+
+ Ansi 13 Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.75686275959014893
+ Color Space
+ sRGB
+ Green Component
+ 0.52549022436141968
+ Red Component
+ 0.81176471710205078
+
+ Ansi 14 Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.75686275959014893
+ Color Space
+ sRGB
+ Green Component
+ 0.72156864404678345
+ Red Component
+ 0.3960784375667572
+
+ Ansi 15 Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.58039218187332153
+ Color Space
+ sRGB
+ Green Component
+ 0.56078433990478516
+ Red Component
+ 0.53333336114883423
+
+ Ansi 2 Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.4117647111415863
+ Color Space
+ sRGB
+ Green Component
+ 0.60784316062927246
+ Red Component
+ 0.5058823823928833
+
+ Ansi 3 Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.39215686917304993
+ Color Space
+ sRGB
+ Green Component
+ 0.49411764740943909
+ Red Component
+ 0.71764707565307617
+
+ Ansi 4 Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.75294119119644165
+ Color Space
+ sRGB
+ Green Component
+ 0.60000002384185791
+ Red Component
+ 0.37647059559822083
+
+ Ansi 5 Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.65490198135375977
+ Color Space
+ sRGB
+ Green Component
+ 0.47450980544090271
+ Red Component
+ 0.69803923368453979
+
+ Ansi 6 Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.67843139171600342
+ Color Space
+ sRGB
+ Green Component
+ 0.64705884456634521
+ Red Component
+ 0.40000000596046448
+
+ Ansi 7 Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.76470589637756348
+ Color Space
+ sRGB
+ Green Component
+ 0.74117648601531982
+ Red Component
+ 0.70588237047195435
+
+ Ansi 8 Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.20392157137393951
+ Color Space
+ sRGB
+ Green Component
+ 0.21960784494876862
+ Red Component
+ 0.24313725531101227
+
+ Ansi 9 Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.56078433990478516
+ Color Space
+ sRGB
+ Green Component
+ 0.51372551918029785
+ Red Component
+ 0.90980392694473267
+
+ Background Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.094117648899555206
+ Color Space
+ sRGB
+ Green Component
+ 0.098039217293262482
+ Red Component
+ 0.10980392247438431
+
+ Badge Color
+
+ Alpha Component
+ 0.7057952880859375
+ Blue Component
+ 0.36862742900848389
+ Color Space
+ sRGB
+ Green Component
+ 0.29803919792175293
+ Red Component
+ 0.26274508237838745
+
+ Bold Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.150177001953125
+ Color Space
+ sRGB
+ Green Component
+ 0.12776593863964081
+ Red Component
+ 0.10535489022731781
+
+ Cursor Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.79607844352722168
+ Color Space
+ sRGB
+ Green Component
+ 0.78039216995239258
+ Red Component
+ 0.7607843279838562
+
+ Cursor Guide Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.32156860828399658
+ Color Space
+ sRGB
+ Green Component
+ 0.25882357358932495
+ Red Component
+ 0.23137256503105164
+
+ Cursor Text Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.066666670143604279
+ Color Space
+ sRGB
+ Green Component
+ 0.074509806931018829
+ Red Component
+ 0.086274512112140656
+
+ Foreground Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.76470589637756348
+ Color Space
+ sRGB
+ Green Component
+ 0.74117648601531982
+ Red Component
+ 0.70588237047195435
+
+ Link Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.7607843279838562
+ Color Space
+ sRGB
+ Green Component
+ 0.57647061347961426
+ Red Component
+ 0.25882354378700256
+
+ Selected Text Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.74901962280273438
+ Color Space
+ sRGB
+ Green Component
+ 0.729411780834198
+ Red Component
+ 0.70196080207824707
+
+ Selection Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.25490197539329529
+ Color Space
+ sRGB
+ Green Component
+ 0.23137255012989044
+ Red Component
+ 0.18823529779911041
+
+ Tab Color
+
+ Alpha Component
+ 1
+ Blue Component
+ 0.094117648899555206
+ Color Space
+ sRGB
+ Green Component
+ 0.098039217293262482
+ Red Component
+ 0.10980392247438431
+
+
+
diff --git a/extras/kitty/zenbones.conf b/extras/kitty/zenbones.conf
index 10ab2e4..b38e779 100644
--- a/extras/kitty/zenbones.conf
+++ b/extras/kitty/zenbones.conf
@@ -8,7 +8,7 @@ background #F0EDEC
foreground #2C363C
selection_background #D2DFE7
selection_foreground #2C363C
-url_color #864079
+url_color #1D5573
cursor #2C363C
# Tabs
@@ -19,21 +19,21 @@ inactive_tab_foreground #2C363C
#tab_bar_background ${tab_bar_background}
# normal
-color0 #2C363C
+color0 #F0EDEC
color1 #A8334C
-color2 #617437
+color2 #4F6C31
color3 #944927
color4 #286486
color5 #88507D
color6 #3B8992
-color7 #F0EDEC
+color7 #2C363C
# bright
-color8 #44525B
-color9 #9C2842
-color10 #55672A
-color11 #87411E
-color12 #1F5A7A
-color13 #864079
-color14 #2F7C85
-color15 #DCD2CE
+color8 #CFC1BA
+color9 #94253E
+color10 #3F5A22
+color11 #803D1C
+color12 #1D5573
+color13 #7B3B70
+color14 #2B747C
+color15 #4F5E68
diff --git a/extras/kitty/zenflesh.conf b/extras/kitty/zenflesh.conf
new file mode 100644
index 0000000..5790ff8
--- /dev/null
+++ b/extras/kitty/zenflesh.conf
@@ -0,0 +1,39 @@
+# vim:ft=kitty
+## name: zenflesh
+## license: MIT
+## author: Michael Chris Lopez
+## upstream: https://github.com/mcchrish/zenbones.nvim/raw/main/extras/kitty/zenflesh.conf
+
+background #1C1918
+foreground #B4BDC3
+selection_background #37393B
+selection_foreground #B4BDC3
+url_color #61ABDA
+cursor #B4BDC3
+
+# Tabs
+active_tab_background #73516C
+active_tab_foreground #B4BDC3
+inactive_tab_background #3D3836
+inactive_tab_foreground #B4BDC3
+#tab_bar_background ${tab_bar_background}
+
+# normal
+color0 #1C1918
+color1 #DE6E7C
+color2 #819B69
+color3 #B77E64
+color4 #6099C0
+color5 #B279A7
+color6 #66A5AD
+color7 #B4BDC3
+
+# bright
+color8 #3E3834
+color9 #E8838F
+color10 #8BAE68
+color11 #D68C67
+color12 #61ABDA
+color13 #CF86C1
+color14 #65B8C1
+color15 #888F94
diff --git a/extras/tmux/zenbones.tmux b/extras/tmux/zenbones.tmux
index 9ecac50..f1aacde 100644
--- a/extras/tmux/zenbones.tmux
+++ b/extras/tmux/zenbones.tmux
@@ -1,17 +1,17 @@
set -g status-left ' #[fg=#88507D,bold]#{s/root//:client_key_table} '
set -g status-right '#[fg=#88507D,bold] [#S]#[fg=#88507D,bold] [%d/%m] #[fg=#88507D,bold][%I:%M%p] '
-set -g status-style fg='#88507D',bg='#F0EDEC'
+set -g status-style fg='#88507D',bg='#2C363C'
-set -g window-status-current-style fg='#88507D',bg='#F0EDEC',bold
+set -g window-status-current-style fg='#88507D',bg='#2C363C',bold
set -g pane-border-style fg='#88507D'
set -g pane-active-border-style fg='#88507D'
-set -g message-style fg='#2C363C',bg='#D2DFE7'
+set -g message-style fg='#F0EDEC',bg='#D2DFE7'
set -g display-panes-active-colour '#88507D'
set -g display-panes-colour '#88507D'
set -g clock-mode-colour '#88507D'
-set -g mode-style fg='#2C363C',bg='#D2DFE7'
+set -g mode-style fg='#F0EDEC',bg='#D2DFE7'
diff --git a/extras/tmux/zenflesh.tmux b/extras/tmux/zenflesh.tmux
new file mode 100644
index 0000000..5b3ef18
--- /dev/null
+++ b/extras/tmux/zenflesh.tmux
@@ -0,0 +1,17 @@
+set -g status-left ' #[fg=#B279A7,bold]#{s/root//:client_key_table} '
+set -g status-right '#[fg=#B279A7,bold] [#S]#[fg=#B279A7,bold] [%d/%m] #[fg=#B279A7,bold][%I:%M%p] '
+set -g status-style fg='#B279A7',bg='#B4BDC3'
+
+set -g window-status-current-style fg='#B279A7',bg='#B4BDC3',bold
+
+set -g pane-border-style fg='#B279A7'
+set -g pane-active-border-style fg='#B279A7'
+
+set -g message-style fg='#1C1918',bg='#37393B'
+
+set -g display-panes-active-colour '#B279A7'
+set -g display-panes-colour '#B279A7'
+
+set -g clock-mode-colour '#B279A7'
+
+set -g mode-style fg='#1C1918',bg='#37393B'
diff --git a/extras/wezterm/Zenbones.toml b/extras/wezterm/Zenbones.toml
index d239a7e..ee28513 100644
--- a/extras/wezterm/Zenbones.toml
+++ b/extras/wezterm/Zenbones.toml
@@ -8,5 +8,5 @@ cursor_fg = "#F2F0EF"
selection_bg = "#D2DFE7"
selection_fg = "#2C363C"
-ansi = ["#2C363C", "#A8334C", "#617437", "#944927", "#286486", "#88507D", "#3B8992", "#F0EDEC"]
-brights = ["#44525B", "#9C2842", "#55672A", "#87411E", "#1F5A7A", "#864079", "#2F7C85", "#DCD2CE"]
+ansi = ["#F0EDEC", "#A8334C", "#4F6C31", "#944927", "#286486", "#88507D", "#3B8992", "#2C363C"]
+brights = ["#CFC1BA", "#94253E", "#3F5A22", "#803D1C", "#1D5573", "#7B3B70", "#2B747C", "#4F5E68"]
diff --git a/extras/wezterm/Zenflesh.toml b/extras/wezterm/Zenflesh.toml
new file mode 100644
index 0000000..01c70b4
--- /dev/null
+++ b/extras/wezterm/Zenflesh.toml
@@ -0,0 +1,12 @@
+# Zenflesh
+[colors]
+foreground = "#B4BDC3"
+background = "#1C1918"
+cursor_bg = "#C4CACF"
+cursor_border = "#171514"
+cursor_fg = "#171514"
+selection_bg = "#37393B"
+selection_fg = "#B4BDC3"
+
+ansi = ["#1C1918", "#DE6E7C", "#819B69", "#B77E64", "#6099C0", "#B279A7", "#66A5AD", "#B4BDC3"]
+brights = ["#3E3834", "#E8838F", "#8BAE68", "#D68C67", "#61ABDA", "#CF86C1", "#65B8C1", "#888F94"]
diff --git a/lua/lualine/themes/zenbones.lua b/lua/lualine/themes/zenbones.lua
index ddbbb51..b403f96 100644
--- a/lua/lualine/themes/zenbones.lua
+++ b/lua/lualine/themes/zenbones.lua
@@ -10,7 +10,7 @@ return {
},
insert = {
- a = { bg = "#DDE6CD", fg = common_fg, gui = "bold" },
+ a = { bg = "#99C6E9", fg = common_fg, gui = "bold" },
},
command = {
diff --git a/lua/lualine/themes/zenflesh.lua b/lua/lualine/themes/zenflesh.lua
new file mode 100644
index 0000000..a8f17b8
--- /dev/null
+++ b/lua/lualine/themes/zenflesh.lua
@@ -0,0 +1,33 @@
+local common_fg = "#BBAEA8"
+local inactive_bg = "#312D2B"
+local inactive_fg = "#CAD0D4"
+
+return {
+ normal = {
+ a = { bg = "#716965", fg = common_fg, gui = "bold" },
+ b = { bg = "#4E4845", fg = common_fg },
+ c = { bg = "#3D3836", fg = "#B4BDC3" },
+ },
+
+ insert = {
+ a = { bg = "#455C6F", fg = common_fg, gui = "bold" },
+ },
+
+ command = {
+ a = { bg = "#73516C", fg = common_fg, gui = "bold" },
+ },
+
+ visual = {
+ a = { bg = "#37393B", fg = common_fg, gui = "bold" },
+ },
+
+ replace = {
+ a = { bg = "#5B2E33", fg = common_fg, gui = "bold" },
+ },
+
+ inactive = {
+ a = { bg = inactive_bg, fg = inactive_fg, gui = "bold" },
+ b = { bg = inactive_bg, fg = inactive_fg },
+ c = { bg = inactive_bg, fg = inactive_fg },
+ },
+}
diff --git a/lua/zenbones/build.lua b/lua/zenbones/build.lua
index 825bdfd..e909be2 100644
--- a/lua/zenbones/build.lua
+++ b/lua/zenbones/build.lua
@@ -1,6 +1,3 @@
-local theme = require "zenbones"
-local terminal = require "zenbones.terminal"
-
-- got from http://lua-users.org/wiki/StringInterpolation
function interp(s, tab)
return (s:gsub("($%b{})", function(w)
@@ -19,7 +16,26 @@ end
local function build()
local templates = { "vim", "kitty", "alacritty", "wezterm", "lualine", "lightline", "tmux" }
for _, t in ipairs(templates) do
- write_template(unpack(require("zenbones.build." .. t)))
+ write_template(
+ unpack(
+ require("zenbones.build." .. t)(
+ "zenbones",
+ require "zenbones",
+ require "zenbones.palette",
+ require "zenbones.terminal"
+ )
+ )
+ )
+ write_template(
+ unpack(
+ require("zenbones.build." .. t)(
+ "zenflesh",
+ require "zenflesh",
+ require "zenflesh.palette",
+ require "zenflesh.terminal"
+ )
+ )
+ )
end
end
diff --git a/lua/zenbones/build/alacritty.lua b/lua/zenbones/build/alacritty.lua
index 1a0d92f..f5e2df2 100644
--- a/lua/zenbones/build/alacritty.lua
+++ b/lua/zenbones/build/alacritty.lua
@@ -1,4 +1,4 @@
-local template = [[# Zenbones Alacritty Colors
+local template = [[# ${name} alacritty colors
colors:
# Default colors
primary:
@@ -26,15 +26,15 @@ colors:
white: '${color15}'
]]
-local theme = require "zenbones"
-local terminal = require "zenbones.terminal"
+return function(name, theme, palette, terminal)
+ local values = {
+ name = name,
+ bg = theme.Normal.bg.hex,
+ fg = theme.Normal.fg.hex,
+ }
+ for i, v in ipairs(terminal.colors) do
+ values["color" .. (i - 1)] = v.hex
+ end
-local values = {
- bg = theme.Normal.bg.hex,
- fg = theme.Normal.fg.hex,
-}
-for i, v in ipairs(terminal.colors) do
- values["color" .. (i - 1)] = v.hex
+ return { string.format("extras/alacritty/%s.yml", name), template, values }
end
-
-return { "extras/alacritty/zenbones.yml", template, values }
diff --git a/lua/zenbones/build/kitty.lua b/lua/zenbones/build/kitty.lua
index b7da423..6c52c6b 100644
--- a/lua/zenbones/build/kitty.lua
+++ b/lua/zenbones/build/kitty.lua
@@ -1,8 +1,8 @@
local template = [[# vim:ft=kitty
-## name: zenbones
+## name: ${name}
## license: MIT
## author: Michael Chris Lopez
-## upstream: https://github.com/mcchrish/zenbones.nvim/raw/main/extras/kitty/zenbones.conf
+## upstream: https://github.com/mcchrish/zenbones.nvim/raw/main/extras/kitty/${name}.conf
background ${background}
foreground ${foreground}
@@ -39,25 +39,25 @@ color14 ${color14}
color15 ${color15}
]]
-local theme = require "zenbones"
-local terminal = require "zenbones.terminal"
+return function(name, theme, palette, terminal)
+ local bg = theme.Normal.bg.hex
+ local fg = theme.Normal.fg.hex
+ local values = {
+ name = name,
+ background = bg,
+ foreground = fg,
+ selection_background = theme.Visual.bg.hex,
+ selection_foreground = fg,
+ url_color = terminal.colors[13].hex,
+ cursor = fg,
+ active_tab_background = theme.Search.bg.hex,
+ active_tab_foreground = fg,
+ inactive_tab_background = theme.StatusLine.bg.hex,
+ inactive_tab_foreground = fg,
+ }
+ for i, v in ipairs(terminal.colors) do
+ values["color" .. (i - 1)] = v.hex
+ end
-local bg = theme.Normal.bg.hex
-local fg = theme.Normal.fg.hex
-local values = {
- background = bg,
- foreground = fg,
- selection_background = theme.Visual.bg.hex,
- selection_foreground = fg,
- url_color = terminal.colors[14].hex,
- cursor = fg,
- active_tab_background = theme.Search.bg.hex,
- active_tab_foreground = fg,
- inactive_tab_background = theme.StatusLine.bg.hex,
- inactive_tab_foreground = fg,
-}
-for i, v in ipairs(terminal.colors) do
- values["color" .. (i - 1)] = v.hex
+ return { string.format("extras/kitty/%s.conf", name), template, values }
end
-
-return { "extras/kitty/zenbones.conf", template, values }
diff --git a/lua/zenbones/build/lightline.lua b/lua/zenbones/build/lightline.lua
index 89a0d84..d6b83ac 100644
--- a/lua/zenbones/build/lightline.lua
+++ b/lua/zenbones/build/lightline.lua
@@ -22,31 +22,31 @@ let s:p.tabline.tabsel = [ [ "${tabsel_fg}", "${tabsel_bg}", "bold" ] ]
let g:lightline#colorscheme#zenbones#palette = lightline#colorscheme#fill(s:p)
]]
-local theme = require "zenbones"
-
-return {
- "autoload/lightline/colorscheme/zenbones.vim",
- template,
- {
- common_fg = theme.Folded.fg.hex,
- inactive_bg = theme.StatusLineNC.bg.hex,
- inactive_fg = theme.StatusLineNC.fg.hex,
- normal_a_bg = theme.PmenuSbar.bg.hex,
- normal_b_bg = theme.PmenuSel.bg.hex,
- normal_c_bg = theme.StatusLine.bg.hex,
- normal_c_fg = theme.StatusLine.fg.hex,
- insert_a_bg = theme.DiffAdd.bg.hex,
- visual_a_bg = theme.Visual.bg.hex,
- replace_a_bg = theme.DiffDelete.bg.hex,
- tabline_left_bg = theme.PmenuSel.bg.hex,
- tabline_left_fg = theme.Normal.fg.hex,
- tabline_right_bg = theme.PmenuSel.bg.hex,
- tabline_right_fg = theme.Normal.fg.hex,
- tabsel_bg = theme.Normal.bg.hex,
- tabsel_fg = theme.Normal.fg.hex,
- warning_bg = theme.LspDiagnosticsVirtualTextWarning.bg.hex,
- warning_fg = theme.LspDiagnosticsVirtualTextWarning.fg.hex,
- error_bg = theme.LspDiagnosticsVirtualTextError.bg.hex,
- error_fg = theme.LspDiagnosticsVirtualTextError.fg.hex,
- },
-}
+return function(name, theme, palette, terminal)
+ return {
+ string.format("autoload/lightline/colorscheme/%s.vim", name),
+ template,
+ {
+ common_fg = theme.Folded.fg.hex,
+ inactive_bg = theme.StatusLineNC.bg.hex,
+ inactive_fg = theme.StatusLineNC.fg.hex,
+ normal_a_bg = theme.PmenuSbar.bg.hex,
+ normal_b_bg = theme.PmenuSel.bg.hex,
+ normal_c_bg = theme.StatusLine.bg.hex,
+ normal_c_fg = theme.StatusLine.fg.hex,
+ insert_a_bg = theme.DiffText.bg.hex,
+ visual_a_bg = theme.Visual.bg.hex,
+ replace_a_bg = theme.DiffDelete.bg.hex,
+ tabline_left_bg = theme.PmenuSel.bg.hex,
+ tabline_left_fg = theme.Normal.fg.hex,
+ tabline_right_bg = theme.PmenuSel.bg.hex,
+ tabline_right_fg = theme.Normal.fg.hex,
+ tabsel_bg = theme.Normal.bg.hex,
+ tabsel_fg = theme.Normal.fg.hex,
+ warning_bg = theme.LspDiagnosticsVirtualTextWarning.bg.hex,
+ warning_fg = theme.LspDiagnosticsVirtualTextWarning.fg.hex,
+ error_bg = theme.LspDiagnosticsVirtualTextError.bg.hex,
+ error_fg = theme.LspDiagnosticsVirtualTextError.fg.hex,
+ },
+ }
+end
diff --git a/lua/zenbones/build/lualine.lua b/lua/zenbones/build/lualine.lua
index 8e2aa7f..8a24b63 100644
--- a/lua/zenbones/build/lualine.lua
+++ b/lua/zenbones/build/lualine.lua
@@ -33,22 +33,22 @@ return {
}
]]
-local theme = require "zenbones"
-
-return {
- "lua/lualine/themes/zenbones.lua",
- template,
- {
- common_fg = theme.Folded.fg.hex,
- inactive_bg = theme.StatusLineNC.bg.hex,
- inactive_fg = theme.StatusLineNC.fg.hex,
- normal_a_bg = theme.PmenuSbar.bg.hex,
- normal_b_bg = theme.PmenuSel.bg.hex,
- normal_c_bg = theme.StatusLine.bg.hex,
- normal_c_fg = theme.StatusLine.fg.hex,
- insert_a_bg = theme.DiffAdd.bg.hex,
- command_a_bg = theme.Search.bg.hex,
- visual_a_bg = theme.Visual.bg.hex,
- replace_a_bg = theme.DiffDelete.bg.hex,
- },
-}
+return function(name, theme, palette, terminal)
+ return {
+ string.format("lua/lualine/themes/%s.lua", name),
+ template,
+ {
+ common_fg = theme.Folded.fg.hex,
+ inactive_bg = theme.StatusLineNC.bg.hex,
+ inactive_fg = theme.StatusLineNC.fg.hex,
+ normal_a_bg = theme.PmenuSbar.bg.hex,
+ normal_b_bg = theme.PmenuSel.bg.hex,
+ normal_c_bg = theme.StatusLine.bg.hex,
+ normal_c_fg = theme.StatusLine.fg.hex,
+ insert_a_bg = theme.DiffText.bg.hex,
+ command_a_bg = theme.Search.bg.hex,
+ visual_a_bg = theme.Visual.bg.hex,
+ replace_a_bg = theme.DiffDelete.bg.hex,
+ },
+ }
+end
diff --git a/lua/zenbones/build/tmux.lua b/lua/zenbones/build/tmux.lua
index f16b703..b45dd69 100644
--- a/lua/zenbones/build/tmux.lua
+++ b/lua/zenbones/build/tmux.lua
@@ -17,14 +17,13 @@ set -g clock-mode-colour '${color5}'
set -g mode-style fg='${color0}',bg='${selection_background}'
]]
-local theme = require "zenbones"
-local terminal = require "zenbones.terminal"
+return function(name, theme, palette, terminal)
+ local values = {
+ selection_background = theme.Visual.bg.hex,
+ }
+ for i, v in ipairs(terminal.colors) do
+ values["color" .. (i - 1)] = v.hex
+ end
-local values = {
- selection_background = theme.Visual.bg.hex,
-}
-for i, v in ipairs(terminal.colors) do
- values["color" .. (i - 1)] = v.hex
+ return { string.format("extras/tmux/%s.tmux", name), template, values }
end
-
-return { "extras/tmux/zenbones.tmux", template, values }
diff --git a/lua/zenbones/build/vim.lua b/lua/zenbones/build/vim.lua
index 2b77fd0..702e379 100644
--- a/lua/zenbones/build/vim.lua
+++ b/lua/zenbones/build/vim.lua
@@ -1,6 +1,4 @@
local lush = require "lush"
-local theme = require "zenbones"
-local terminal = require "zenbones.terminal"
local template = [[if exists('g:colors_name')
highlight clear
@@ -8,8 +6,8 @@ local template = [[if exists('g:colors_name')
set t_Co=256
endif
-set background=light
-let g:colors_name = 'zenbones'
+set background=${background}
+let g:colors_name = '${name}'
${termcolors}
if has('terminal')
@@ -36,19 +34,23 @@ endif
${vimcolors}
]]
-local termcolors = ""
-for i, v in ipairs(terminal.colors) do
- termcolors = termcolors .. string.format("let g:terminal_color_%s = '%s'\n", (i - 1), v.hex)
+return function(name, theme, palette, terminal)
+ local termcolors = ""
+ for i, v in ipairs(terminal.colors) do
+ termcolors = termcolors .. string.format("let g:terminal_color_%s = '%s'\n", (i - 1), v.hex)
+ end
+
+ -- Compile lush table, concatenate to a single string, and remove blend property
+ local vimcolors = table.concat(vim.fn.sort(lush.compile(theme, { exclude_keys = { "blend" } })), "\n")
+
+ return {
+ string.format("colors/%s.vim", name),
+ template,
+ {
+ background = name == "zenbones" and "light" or "dark",
+ name = name,
+ termcolors = termcolors,
+ vimcolors = vimcolors,
+ },
+ }
end
-
--- Compile lush table, concatenate to a single string, and remove blend property
-local vimcolors = table.concat(vim.fn.sort(lush.compile(theme, { exclude_keys = { "blend" } })), "\n")
-
-return {
- "colors/zenbones.vim",
- template,
- {
- termcolors = termcolors,
- vimcolors = vimcolors,
- },
-}
diff --git a/lua/zenbones/build/wezterm.lua b/lua/zenbones/build/wezterm.lua
index 3af01bd..7686077 100644
--- a/lua/zenbones/build/wezterm.lua
+++ b/lua/zenbones/build/wezterm.lua
@@ -1,4 +1,4 @@
-local template = [[# Zenbones
+local template = [[# ${name}
[colors]
foreground = "${fg}"
background = "${bg}"
@@ -12,20 +12,22 @@ ansi = ["${color0}", "${color1}", "${color2}", "${color3}", "${color4}", "${colo
brights = ["${color8}", "${color9}", "${color10}", "${color11}", "${color12}", "${color13}", "${color14}", "${color15}"]
]]
-local theme = require "zenbones"
-local terminal = require "zenbones.terminal"
+return function(name, theme, palette, terminal)
+ local name = name:sub(1, 1):upper() .. name:sub(2)
-local values = {
- fg = theme.Normal.fg.hex,
- bg = theme.Normal.bg.hex,
- cursor_bg = theme.Cursor.bg.hex,
- cursor_border = theme.Cursor.fg.hex,
- cursor_fg = theme.Cursor.fg.hex,
- selection_bg = theme.Visual.bg.hex,
- selection_fg = theme.Normal.fg.hex,
-}
-for i, v in ipairs(terminal.colors) do
- values["color" .. (i - 1)] = v.hex
+ local values = {
+ name = name,
+ fg = theme.Normal.fg.hex,
+ bg = theme.Normal.bg.hex,
+ cursor_bg = theme.Cursor.bg.hex,
+ cursor_border = theme.Cursor.fg.hex,
+ cursor_fg = theme.Cursor.fg.hex,
+ selection_bg = theme.Visual.bg.hex,
+ selection_fg = theme.Normal.fg.hex,
+ }
+ for i, v in ipairs(terminal.colors) do
+ values["color" .. (i - 1)] = v.hex
+ end
+
+ return { string.format("extras/wezterm/%s.toml", name), template, values }
end
-
-return { "extras/wezterm/Zenbones.toml", template, values }
diff --git a/lua/zenbones/init.lua b/lua/zenbones/init.lua
index 9a1a974..61951b1 100644
--- a/lua/zenbones/init.lua
+++ b/lua/zenbones/init.lua
@@ -1,21 +1,23 @@
local lush = require "lush"
-local c = require "zenbones.colors"
+local p = require "zenbones.palette"
-local normal_bg = c.sand
-local diff_bg_li = 0
+local normal_bg = p.bg
+local diff_bg_l = 0
local lightness = vim.g.zenbones_lightness
if lightness == "bright" then
- normal_bg = normal_bg.abs_da(-4)
- diff_bg_li = -4
+ normal_bg = normal_bg.abs_li(3).sa(6)
+ diff_bg_l = -4
elseif lightness == "dim" then
- normal_bg = normal_bg.abs_da(4).de(18)
- diff_bg_li = 4
+ normal_bg = normal_bg.abs_da(3).de(12)
+ diff_bg_l = 4
elseif lightness ~= nil then
local error_msg = "Unknown zenbones_lightness value: " .. vim.inspect(lightness)
vim.api.nvim_echo({ { error_msg, "WarningMsg" } }, true, {})
end
+local italic_comments = type(vim.g.zenbones_italic_comments) == "boolean" and vim.g.zenbones_italic_comments or true
+
-- stylua: ignore start
local theme = lush(function()
return {
@@ -31,43 +33,43 @@ local theme = lush(function()
-- styling for that group (meaning they mostly get styled as Normal)
-- or leave them commented to apply vims default colouring or linking.
- Normal { bg = normal_bg, fg = c.stone }, -- normal text
+ Normal { bg = normal_bg, fg = p.fg }, -- normal text
Underlined { gui = "underline" }, -- (preferred) text that stands out, HTML links
Bold { gui = "bold" },
Italic { gui = "italic" },
- Error { fg = c.rose }, -- (preferred) any erroneous construct
+ Error { fg = p.rose }, -- (preferred) any erroneous construct
ErrorMsg { Error }, -- error messages on the command line
- WarningMsg { fg = c.wood }, -- warning messages
+ WarningMsg { fg = p.wood }, -- warning messages
- Comment { fg = c.sand.da(38).de(28), gui = "italic" }, -- any comment
- Conceal { fg = c.stone.li(20), gui = "bold,italic" }, -- placeholder characters substituted for concealed text (see 'conceallevel')
+ Comment { fg = p.bg.da(38).de(28), gui = (italic_comments and "italic" or "NONE") }, -- any comment
+ Conceal { fg = p.fg.li(20), gui = "bold,italic" }, -- placeholder characters substituted for concealed text (see 'conceallevel')
- Cursor { bg = c.stone, fg = c.sand.li(20) }, -- character under the cursor
+ Cursor { bg = p.fg, fg = p.bg.li(20) }, -- character under the cursor
lCursor { Cursor, bg = Cursor.bg.li(20) }, -- the character under the cursor when |language-mapping| is used (see 'guicursor')
-- CursorIM { }, -- like Cursor, but used when in IME mode |CursorIM|
TermCursor { Cursor }, -- cursor in a focused terminal
CursorLine { bg = Normal.bg.da(4) }, -- Screen-line at the cursor, when 'cursorline' is set. Low-priority if foreground (ctermfg OR guifg) is not set.
CursorColumn { CursorLine }, -- Screen-column at the cursor, when 'cursorcolumn' is set.
- ColorColumn { bg = c.wood.de(38).li(80) }, -- used for the columns set with 'colorcolumn'
+ ColorColumn { bg = p.wood.de(38).li(80) }, -- used for the columns set with 'colorcolumn'
- DiffAdd { bg = c.leaf.de(77).li(82).abs_da(diff_bg_li) }, -- diff mode: Added line |diff.txt|
- DiffChange { bg = c.water.de(22).li(76).abs_da(diff_bg_li) }, -- diff mode: Changed line |diff.txt|
- DiffDelete { bg = c.rose.de(37).li(74).abs_da(diff_bg_li) }, -- diff mode: Deleted line |diff.txt|
- DiffText { bg = c.water.de(24).li(64).abs_da(diff_bg_li), fg = c.stone }, -- diff mode: Changed text within a changed line |diff.txt|
+ DiffAdd { bg = p.leaf.de(77).li(82).abs_da(diff_bg_l) }, -- diff mode: Added line |diff.txt|
+ DiffChange { bg = p.water.de(22).li(76).abs_da(diff_bg_l) }, -- diff mode: Changed line |diff.txt|
+ DiffDelete { bg = p.rose.de(37).li(74).abs_da(diff_bg_l) }, -- diff mode: Deleted line |diff.txt|
+ DiffText { bg = p.water.de(24).li(64).abs_da(diff_bg_l), fg = p.fg }, -- diff mode: Changed text within a changed line |diff.txt|
LineNr { fg = Normal.bg.da(32) }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set.
SignColumn { LineNr }, -- column where |signs| are displayed
FoldColumn { LineNr, gui = "bold" }, -- 'foldcolumn'
Folded { bg = Normal.bg.da(16), fg = Normal.bg.da(64) }, -- line used for closed folds
- CursorLineNr { LineNr, fg = c.stone, gui = "bold" }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line.
+ CursorLineNr { LineNr, fg = p.fg, gui = "bold" }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line.
-- ModeMsg { }, -- 'showmode' message (e.g., "-- INSERT -- ")
-- MsgArea { }, -- Area for messages and cmdline
-- MsgSeparator { }, -- Separator for scrolled messages, `msgsep` flag of 'display'
- MoreMsg { fg = c.leaf, gui = "bold" }, -- |more-prompt|
+ MoreMsg { fg = p.leaf, gui = "bold" }, -- |more-prompt|
NormalFloat { bg = Normal.bg.da(6) }, -- Normal text in floating windows.
FloatBorder { fg = Normal.bg.da(50) }, -- Normal text in floating windows.
@@ -76,8 +78,8 @@ local theme = lush(function()
PmenuSbar { bg = Normal.bg.da(28) }, -- Popup menu: scrollbar.
PmenuThumb { bg = Normal.bg.li(58) }, -- Popup menu: Thumb of the scrollbar.
- Search { bg = c.blossom.de(10).li(54), fg = c.stone }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand out.
- IncSearch { bg = c.blossom, fg = c.sand, gui = "bold" }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c"
+ Search { bg = p.blossom.de(10).li(54), fg = p.fg }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand out.
+ IncSearch { bg = p.blossom, fg = p.bg, gui = "bold" }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c"
-- Substitute { }, -- |:substitute| replacement text highlighting
MatchParen { Search }, -- The character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt|
-- QuickFixLine { }, -- Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there.
@@ -85,16 +87,16 @@ local theme = lush(function()
SpellBad { fg = Error.fg.de(30), gui = "undercurl", guisp = Error.fg }, -- Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise.
SpellCap { SpellBad, guisp = Error.fg.li(10) }, -- Word that should start with a capital. |spell| Combined with the highlighting used otherwise.
SpellLocal { SpellCap }, -- Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise.
- SpellRare { SpellBad, guisp = c.wood }, -- Word that is recognized by the spellchecker as one that is hardly ever used. |spell| Combined with the highlighting used otherwise.
+ SpellRare { SpellBad, guisp = p.wood }, -- Word that is recognized by the spellchecker as one that is hardly ever used. |spell| Combined with the highlighting used otherwise.
- StatusLine { bg = c.sand.da(14), fg = c.stone }, -- status line of current window
- StatusLineNC { bg = c.sand.da(10), fg = c.stone.li(28) }, -- status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window.
+ StatusLine { bg = p.bg.da(14), fg = p.fg }, -- status line of current window
+ StatusLineNC { bg = p.bg.da(10), fg = p.fg.li(28) }, -- status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window.
TabLine { StatusLine, gui = "italic" }, -- tab pages line, not active tab page label
TabLineFill { StatusLineNC }, -- tab pages line, where there are no labels
TabLineSel { gui = "bold" }, -- tab pages line, active tab page label
- VertSplit { fg = PmenuThumb.bg }, -- the column separating vertically split windows
+ VertSplit { LineNr }, -- the column separating vertically split windows
- Visual { bg = c.stone.li(84) }, -- Visual mode selection
+ Visual { bg = p.fg.li(84) }, -- Visual mode selection
-- VisualNOS { }, -- Visual mode selection when vim is "Not Owning the Selection".
NonText { fg = Normal.bg.da(22) }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|.
@@ -102,7 +104,7 @@ local theme = lush(function()
Whitespace { NonText }, -- "nbsp", "space", "tab" and "trail" in 'listchars'
EndOfBuffer { NonText }, -- filler lines (~) after the end of the buffer. By default, this is highlighted like |hl-NonText|.
- WildMenu { bg = c.blossom, fg = c.sand }, -- current match in 'wildmenu' completion
+ WildMenu { bg = p.blossom, fg = p.bg }, -- current match in 'wildmenu' completion
Directory { gui = "bold" }, -- directory names (and other special names in listings)
Question { MoreMsg }, -- |hit-enter| prompt and yes/no questions
Title { gui = "bold" }, -- titles for output from ":set all", ":autocmd" etc.
@@ -114,21 +116,21 @@ local theme = lush(function()
-- default,
-- Uncomment and edit if you want more specific syntax highlighting.
- Constant { fg = c.stone.li(24), gui = "italic" }, -- (preferred) any constant
+ Constant { fg = p.fg.li(25), gui = "italic" }, -- (preferred) any constant
-- String { }, -- a string constant: "this is a string"
-- Character { }, -- a character constant: 'c', '\n'
- -- Number { }, -- a number constant: 234, 0xff
- -- Boolean { }, -- a boolean constant: TRUE, false
+ Number { gui = "italic" }, -- a number constant: 234, 0xff
+ Boolean { Number }, -- a boolean constant: TRUE, false
-- Float { }, -- a floating point constant: 2.3e10
- Identifier { fg = c.stone.li(16) }, -- (preferred) any variable name
- Function { fg = c.stone }, -- function name (also: methods for classes)
+ Identifier { fg = p.fg.li(15) }, -- (preferred) any variable name
+ Function { fg = p.fg }, -- function name (also: methods for classes)
- Statement { fg = c.stone, gui = "bold" }, -- (preferred) any statement
- -- Conditional { }, -- if, then, else, endif, switch, etc.
- -- Repeat { }, -- for, do, while, etc.
- -- Label { }, -- case, default, etc.
- -- Operator { }, -- "sizeof", "+", "*", etc.
+ Statement { fg = p.fg, gui = "bold" }, -- (preferred) any statement
+ -- Conditional { }, -- if, then, else, endif, switch, etp.
+ -- Repeat { }, -- for, do, while, etp.
+ -- Label { }, -- case, default, etp.
+ -- Operator { }, -- "sizeof", "+", "*", etp.
-- Keyword { }, -- any other keyword
-- Exception { }, -- try, catch, throw
@@ -136,17 +138,17 @@ local theme = lush(function()
-- Include { }, -- preprocessor #include
-- Define { }, -- preprocessor #define
-- Macro { }, -- same as Define
- -- PreCondit { }, -- preprocessor #if, #else, #endif, etc.
+ -- PreCondit { }, -- preprocessor #if, #else, #endif, etp.
- Type { fg = c.sand.da(62) }, -- (preferred) int, long, char, etc.
+ Type { fg = p.bg.da(62) }, -- (preferred) int, long, char, etp.
-- StorageClass { }, -- static, register, volatile, etc.
-- Structure { }, -- struct, union, enum, etc.
-- Typedef { }, -- A typedef
- Special { fg = c.stone.li(21), gui = "bold" }, -- (preferred) any special symbol
+ Special { fg = p.fg.li(21), gui = "bold" }, -- (preferred) any special symbol
-- SpecialChar { }, -- special character in a constant
-- Tag { }, -- you can use CTRL-] on this
- Delimiter { fg = c.sand.da(42) }, -- character that needs attention
+ Delimiter { fg = p.bg.da(42) }, -- character that needs attention
SpecialComment { Comment, gui = "bold" }, -- special things inside a comment
-- Debug { }, -- debugging statements
@@ -165,11 +167,11 @@ local theme = lush(function()
LspDiagnosticsDefaultError { Error }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
LspDiagnosticsDefaultWarning { WarningMsg }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
- LspDiagnosticsDefaultInformation { fg = c.water }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
- LspDiagnosticsDefaultHint { fg = c.blossom }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
+ LspDiagnosticsDefaultInformation { fg = p.water }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
+ LspDiagnosticsDefaultHint { fg = p.blossom }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
- LspDiagnosticsVirtualTextError { LspDiagnosticsDefaultError, bg = c.rose.abs_de(48).li(82) }, -- Used for "Error" diagnostic virtual text
- LspDiagnosticsVirtualTextWarning { LspDiagnosticsDefaultWarning, bg = c.wood.de(58).li(86) }, -- Used for "Warning" diagnostic virtual text
+ LspDiagnosticsVirtualTextError { LspDiagnosticsDefaultError, bg = p.rose.abs_de(48).li(82) }, -- Used for "Error" diagnostic virtual text
+ LspDiagnosticsVirtualTextWarning { LspDiagnosticsDefaultWarning, bg = p.wood.de(58).li(86) }, -- Used for "Warning" diagnostic virtual text
-- LspDiagnosticsVirtualTextInformation { }, -- Used for "Information" diagnostic virtual text
-- LspDiagnosticsVirtualTextHint { }, -- Used for "Hint" diagnostic virtual text
@@ -253,14 +255,14 @@ local theme = lush(function()
TSDanger { Error },
-- Syntax
- diffAdded { fg = c.leaf },
- diffRemoved { fg = c.rose },
- diffChanged { fg = c.water },
- diffOldFile { fg = c.rose, gui = "italic" },
- diffNewFile { fg = c.leaf, gui = "italic" },
- diffFile { fg = c.wood, gui = "bold" },
- diffLine { fg = c.blossom, gui = "bold" },
- diffIndexLine { fg = c.wood },
+ diffAdded { fg = p.leaf },
+ diffRemoved { fg = p.rose },
+ diffChanged { fg = p.water },
+ diffOldFile { fg = p.rose, gui = "italic" },
+ diffNewFile { fg = p.leaf, gui = "italic" },
+ diffFile { fg = p.wood, gui = "bold" },
+ diffLine { fg = p.blossom, gui = "bold" },
+ diffIndexLine { fg = p.wood },
markdownH1 { Statement, gui = "bold,underline" },
markdownH2 { Statement },
@@ -277,40 +279,40 @@ local theme = lush(function()
helpOption { Constant },
-- Other plugins
- GitSignsAdd { fg = c.leaf },
- GitSignsChange { fg = c.water },
- GitSignsDelete { fg = c.rose },
+ GitSignsAdd { fg = p.leaf },
+ GitSignsChange { fg = p.water },
+ GitSignsDelete { fg = p.rose },
GitGutterAdd { GitSignsAdd },
GitGutterChange { GitSignsChange },
GitGutterDelete { GitSignsDelete },
- IndentBlanklineChar { fg = c.sand.da(12).de(20) },
+ IndentBlanklineChar { fg = p.bg.da(12).de(20) },
TelescopeSelection { CursorLine },
- TelescopeSelectionCaret { TelescopeSelection, fg = c.rose },
- TelescopeMatching { fg = c.blossom, gui = "bold" },
+ TelescopeSelectionCaret { TelescopeSelection, fg = p.rose },
+ TelescopeMatching { fg = p.blossom, gui = "bold" },
TelescopeBorder { FloatBorder },
Sneak { Search },
SneakLabel { WildMenu },
- SneakLabelMask { bg = c.blossom, fg = c.blossom },
+ SneakLabelMask { bg = p.blossom, fg = p.blossom },
- LightspeedLabel { fg = c.blossom, gui = "bold,underline" },
- LightspeedLabelOverlapped { fg = c.blossom, gui = "underline" },
- LightspeedLabelDistant { fg = c.sky, gui = "bold,underline" },
- LightspeedLabelDistantOverlapped { fg = c.sky, gui = "underline" },
+ LightspeedLabel { fg = p.blossom, gui = "bold,underline" },
+ LightspeedLabelOverlapped { fg = p.blossom, gui = "underline" },
+ LightspeedLabelDistant { fg = p.sky, gui = "bold,underline" },
+ LightspeedLabelDistantOverlapped { fg = p.sky, gui = "underline" },
LightspeedShortcut { SneakLabel, gui = "bold,underline" },
LightspeedOneCharMatch { SneakLabel, gui = "bold" },
LightspeedMaskedChar { Conceal },
LightspeedUnlabeledMatch { Bold },
LightspeedPendingOpArea { SneakLabel },
- LightspeedPendingChangeOpArea { fg = c.blossom },
+ LightspeedPendingChangeOpArea { fg = p.blossom },
LightspeedGreyWash { fg = Comment.fg },
HopNextKey { LightspeedLabel },
HopNextKey1 { LightspeedLabelDistant },
- HopNextKey2 { fg = c.water },
+ HopNextKey2 { fg = p.water },
HopUnmatched { LightspeedGreyWash } ,
BufferCurrent { TabLineSel },
@@ -322,15 +324,15 @@ local theme = lush(function()
CocWarningSign { LspDiagnosticsDefaultWarning },
CocInfoSign { LspDiagnosticsDefaultInformation },
CocHintSign { LspDiagnosticsDefaultHint },
- CocErrorHighlight { CocErrorSign, gui = "underline" },
- CocWarningHighlight { CocWarningSign, gui = "underline" },
- CocInfoHighlight { CocInfoSign, gui = "underline" },
- CocHintHighlight { CocHintSign, gui = "underline" },
+ CocErrorHighlight { LspDiagnosticsUnderlineError },
+ CocWarningHighlight { LspDiagnosticsUnderlineWarning },
+ CocInfoHighlight { LspDiagnosticsUnderlineInformation },
+ CocHintHighlight { LspDiagnosticsUnderlineHint },
CocErrorVirtualText { LspDiagnosticsVirtualTextError },
CocWarningVitualText { LspDiagnosticsVirtualTextWarning },
CocSelectedText { SpellBad },
CocCodeLens { LineNr },
- CocMarkdownLink { fg = c.sky, gui = "underline" },
+ CocMarkdownLink { fg = p.sky, gui = "underline" },
NeogitNotificationError { LspDiagnosticsDefaultError },
NeogitNotificationWarning { LspDiagnosticsDefaultWarning },
@@ -340,7 +342,7 @@ local theme = lush(function()
NeogitDiffDeleteHighlight { DiffDelete },
NeogitDiffAddHighlight { DiffAdd },
NeogitHunkHeader { LineNr },
- NeogitHunkHeaderHighlight { CursorLine, fg = c.stone, gui = "bold" },
+ NeogitHunkHeaderHighlight { CursorLine, fg = p.fg, gui = "bold" },
WhichKey { Statement },
WhichKeyGroup { Special },
diff --git a/lua/zenbones/colors.lua b/lua/zenbones/palette.lua
similarity index 62%
rename from lua/zenbones/colors.lua
rename to lua/zenbones/palette.lua
index be040cd..46e85e7 100644
--- a/lua/zenbones/colors.lua
+++ b/lua/zenbones/palette.lua
@@ -1,15 +1,13 @@
local lush = require "lush"
local hsluv = lush.hsluv
-local colors = {
- sand = hsluv(39, 12, 94),
- stone = hsluv(230, 30, 22),
- leaf = hsluv(103, 72, 46),
+return {
+ bg = hsluv(39, 12, 94), -- sand
+ fg = hsluv(230, 30, 22), -- stone
+ leaf = hsluv(112, 72, 42),
water = hsluv(236, 84, 40),
rose = hsluv(4, 70, 40),
wood = hsluv(26, 80, 40),
blossom = hsluv(318, 42, 42),
sky = hsluv(204, 80, 53),
}
-
-return colors
diff --git a/lua/zenbones/print.lua b/lua/zenbones/print.lua
deleted file mode 100644
index 8b090b7..0000000
--- a/lua/zenbones/print.lua
+++ /dev/null
@@ -1,33 +0,0 @@
-local t = require "zenbones"
-local terminal = require "zenbones.terminal"
-
-local M = {}
-
-function M.print_terminal_colors()
- local lines = {}
-
- table.insert(lines, "Terminal colors")
- table.insert(lines, "foreground: " .. t.Normal.fg.hex)
- table.insert(lines, "background: " .. t.Normal.bg.hex)
-
- for i, v in ipairs(terminal.colors) do
- table.insert(lines, "ansi color" .. (i - 1) .. ": " .. v.hex)
- -- table.insert(lines, "let g:terminal_color_" .. (i - 1) .. " = '" .. v.hex .. "'")
- end
-
- table.insert(lines, "cursor foreground: " .. t.Cursor.fg.hex)
- table.insert(lines, "cursor background: " .. t.Cursor.bg.hex)
-
- table.insert(lines, "inactive cursor foreground: " .. t.lCursor.fg.hex)
- table.insert(lines, "inactive cursor background: " .. t.lCursor.bg.hex)
- table.insert(lines, "selection background: " .. t.Visual.bg.hex)
-
- local buf = vim.api.nvim_create_buf(false, true)
- vim.api.nvim_buf_set_lines(buf, 0, -1, false, lines)
-
- vim.cmd('tabnew')
- local win = vim.api.nvim_get_current_win()
- vim.api.nvim_win_set_buf(win, buf)
-end
-
-return M
diff --git a/lua/zenbones/terminal.lua b/lua/zenbones/terminal.lua
index f365abe..f02239f 100644
--- a/lua/zenbones/terminal.lua
+++ b/lua/zenbones/terminal.lua
@@ -1,23 +1,23 @@
local lush = require "lush"
-local c = require "zenbones.colors"
+local p = require "zenbones.palette"
local colors = {
- c.stone,
- c.rose,
- c.leaf,
- c.wood,
- c.water,
- c.blossom,
- c.sky,
- c.sand,
- c.stone.li(16),
- c.rose.sa(20).da(10),
- c.leaf.sa(20).da(10),
- c.wood.sa(18).da(10),
- c.water.sa(20).da(10),
- c.blossom.sa(24).da(10),
- c.sky.sa(20).da(10),
- c.sand.sa(4).da(10),
+ p.bg,
+ p.rose,
+ p.leaf,
+ p.wood,
+ p.water,
+ p.blossom,
+ p.sky,
+ p.fg,
+ p.bg.sa(4).da(16),
+ p.rose.sa(20).da(16),
+ p.leaf.sa(20).da(16),
+ p.wood.sa(18).da(16),
+ p.water.sa(20).da(16),
+ p.blossom.sa(24).da(16),
+ p.sky.sa(20).da(16),
+ p.fg.li(22),
}
local M = {}
diff --git a/lua/zenflesh/init.lua b/lua/zenflesh/init.lua
new file mode 100644
index 0000000..b97e493
--- /dev/null
+++ b/lua/zenflesh/init.lua
@@ -0,0 +1,390 @@
+local lush = require "lush"
+local p = require "zenflesh.palette"
+
+local normal_bg = p.bg
+local diff_bg_l = 0
+
+local darkness = vim.g.zenflesh_darkness
+if darkness == "stark" then
+ normal_bg = normal_bg.abs_da(3).sa(8)
+ diff_bg_l = -3
+elseif darkness == "warm" then
+ normal_bg = normal_bg.abs_li(3).de(12)
+ diff_bg_l = 3
+elseif darkness ~= nil then
+ local error_msg = "Unknown zenflesh_darkness value: " .. vim.inspect(darkness)
+ vim.api.nvim_echo({ { error_msg, "WarningMsg" } }, true, {})
+end
+
+local italic_comments = type(vim.g.zenflesh_italic_comments) == "boolean" and vim.g.zenflesh_italic_comments or true
+
+-- stylua: ignore start
+local theme = lush(function()
+ return {
+ -- The following are all the Neovim default highlight groups from the docs
+ -- as of 0.5.0-nightly-446, to aid your theme creation. Your themes should
+ -- probably style all of these at a bare minimum.
+ --
+ -- Referenced/linked groups must come before being referenced/lined,
+ -- so the order shown ((mostly) alphabetical) is likely
+ -- not the order you will end up with.
+ --
+ -- You can uncomment these and leave them empty to disable any
+ -- styling for that group (meaning they mostly get styled as Normal)
+ -- or leave them commented to apply vims default colouring or linking.
+
+ Normal { bg = normal_bg, fg = p.fg }, -- normal text
+
+ Underlined { gui = "underline" }, -- (preferred) text that stands out, HTML links
+ Bold { gui = "bold" },
+ Italic { gui = "italic" },
+
+ Error { fg = p.rose }, -- (preferred) any erroneous construct
+ ErrorMsg { Error }, -- error messages on the command line
+ WarningMsg { fg = p.wood }, -- warning messages
+
+ Comment { fg = p.bg.li(38).de(34), gui = (italic_comments and "italic" or "NONE") }, -- any comment
+ Conceal { fg = p.fg.da(20), gui = "bold,italic" }, -- placeholder characters substituted for concealed text (see 'conceallevel')
+
+ Cursor { bg = p.fg.li(20), fg = p.bg.da(20) }, -- character under the cursor
+ lCursor { Cursor, bg = Cursor.bg.da(35) }, -- the character under the cursor when |language-mapping| is used (see 'guicursor')
+ -- CursorIM { }, -- like Cursor, but used when in IME mode |CursorIM|
+ TermCursor { Cursor }, -- cursor in a focused terminal
+ TermCursorNC { lCursor }, -- cursor in an unfocused terminal
+
+ CursorLine { bg = Normal.bg.li(4) }, -- Screen-line at the cursor, when 'cursorline' is set. Low-priority if foreground (ctermfg OR guifg) is not set.
+ CursorColumn { CursorLine }, -- Screen-column at the cursor, when 'cursorcolumn' is set.
+ ColorColumn { bg = p.wood.de(40).da(38) }, -- used for the columns set with 'colorcolumn'
+
+ DiffAdd { bg = p.leaf.de(28).da(60).abs_da(diff_bg_l) }, -- diff mode: Added line |diff.txt|
+ DiffChange { bg = p.water.de(24).da(58).abs_da(diff_bg_l) }, -- diff mode: Changed line |diff.txt|
+ DiffDelete { bg = p.rose.de(40).da(58).abs_da(diff_bg_l) }, -- diff mode: Deleted line |diff.txt|
+ DiffText { bg = p.water.de(28).da(38).abs_da(diff_bg_l), fg = p.fg }, -- diff mode: Changed text within a changed line |diff.txt|
+
+ LineNr { fg = Normal.bg.li(30) }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set.
+ SignColumn { LineNr }, -- column where |signs| are displayed
+ FoldColumn { LineNr, gui = "bold" }, -- 'foldcolumn'
+ Folded { bg = Normal.bg.li(16), fg = Normal.bg.li(69) }, -- line used for closed folds
+ CursorLineNr { LineNr, fg = p.fg, gui = "bold" }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line.
+
+ -- ModeMsg { }, -- 'showmode' message (e.g., "-- INSERT -- ")
+ -- MsgArea { }, -- Area for messages and cmdline
+ -- MsgSeparator { }, -- Separator for scrolled messages, `msgsep` flag of 'display'
+ MoreMsg { fg = p.leaf, gui = "bold" }, -- |more-prompt|
+ NormalFloat { bg = Normal.bg.li(8) }, -- Normal text in floating windows.
+ FloatBorder { fg = Normal.bg.li(46) }, -- Normal text in floating windows.
+
+ Pmenu { bg = Normal.bg.li(12) }, -- Popup menu: normal item.
+ PmenuSel { bg = Normal.bg.li(24) }, -- Popup menu: selected item.
+ PmenuSbar { bg = Normal.bg.li(40) }, -- Popup menu: scrollbar.
+ PmenuThumb { bg = Normal.bg.li(50) }, -- Popup menu: Thumb of the scrollbar.
+
+ Search { bg = p.blossom.de(12).da(32), fg = p.fg }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand out.
+ IncSearch { bg = p.blossom, fg = p.bg, gui = "bold" }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c"
+ -- Substitute { }, -- |:substitute| replacement text highlighting
+ MatchParen { Search }, -- The character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt|
+ -- QuickFixLine { }, -- Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there.
+
+ SpellBad { fg = Error.fg.de(30), gui = "undercurl", guisp = Error.fg }, -- Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise.
+ SpellCap { SpellBad, guisp = Error.fg.da(10) }, -- Word that should start with a capital. |spell| Combined with the highlighting used otherwise.
+ SpellLocal { SpellCap }, -- Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise.
+ SpellRare { SpellBad, guisp = p.wood }, -- Word that is recognized by the spellchecker as one that is hardly ever used. |spell| Combined with the highlighting used otherwise.
+
+ StatusLine { bg = p.bg.li(16), fg = p.fg }, -- status line of current window
+ StatusLineNC { bg = p.bg.li(11), fg = p.fg.li(28) }, -- status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window.
+ TabLine { StatusLine, gui = "italic" }, -- tab pages line, not active tab page label
+ TabLineFill { StatusLineNC }, -- tab pages line, where there are no labels
+ TabLineSel { gui = "bold" }, -- tab pages line, active tab page label
+ VertSplit { LineNr }, -- the column separating vertically split windows
+
+ Visual { bg = p.fg.de(18).da(68) }, -- Visual mode selection
+ -- VisualNOS { }, -- Visual mode selection when vim is "Not Owning the Selection".
+
+ NonText { fg = Normal.bg.li(26) }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|.
+ SpecialKey { NonText, gui = "italic" }, -- Unprintable characters: text displayed differently from what it really is. But not 'listchars' whitespace. |hl-Whitespace|
+ Whitespace { NonText }, -- "nbsp", "space", "tab" and "trail" in 'listchars'
+ EndOfBuffer { NonText }, -- filler lines (~) after the end of the buffer. By default, this is highlighted like |hl-NonText|.
+
+ WildMenu { bg = p.blossom, fg = p.bg }, -- current match in 'wildmenu' completion
+ Directory { gui = "bold" }, -- directory names (and other special names in listings)
+ Question { MoreMsg }, -- |hit-enter| prompt and yes/no questions
+ Title { gui = "bold" }, -- titles for output from ":set all", ":autocmd" etc.
+
+
+ -- These groups are not listed as default vim groups,
+ -- but they are defacto standard group names for syntax highlighting.
+ -- commented out groups should chain up to their "preferred" group by
+ -- default,
+ -- Uncomment and edit if you want more specific syntax highlighting.
+
+ Constant { fg = p.fg.da(24), gui = "italic" }, -- (preferred) any constant
+ -- String { }, -- a string constant: "this is a string"
+ -- Character { }, -- a character constant: 'c', '\n'
+ Number { gui = "italic" }, -- a number constant: 234, 0xff
+ Boolean { Number }, -- a boolean constant: TRUE, false
+ -- Float { }, -- a floating point constant: 2.3e10
+
+ Identifier { fg = p.fg.da(14) }, -- (preferred) any variable name
+ Function { fg = p.fg }, -- function name (also: methods for classes)
+
+ Statement { fg = p.fg, gui = "bold" }, -- (preferred) any statement
+ -- Conditional { }, -- if, then, else, endif, switch, etc.
+ -- Repeat { }, -- for, do, while, etc.
+ -- Label { }, -- case, default, etc.
+ -- Operator { }, -- "sizeof", "+", "*", etc.
+ -- Keyword { }, -- any other keyword
+ -- Exception { }, -- try, catch, throw
+
+ PreProc { Statement }, -- (preferred) generic Preprocessor
+ -- Include { }, -- preprocessor #include
+ -- Define { }, -- preprocessor #define
+ -- Macro { }, -- same as Define
+ -- PreCondit { }, -- preprocessor #if, #else, #endif, etc.
+
+ Type { fg = p.bg.li(58) }, -- (preferred) int, long, char, etc.
+ -- StorageClass { }, -- static, register, volatile, etc.
+ -- Structure { }, -- struct, union, enum, etc.
+ -- Typedef { }, -- A typedef
+
+ Special { fg = p.fg.da(12), gui = "bold" }, -- (preferred) any special symbol
+ -- SpecialChar { }, -- special character in a constant
+ -- Tag { }, -- you can use CTRL-] on this
+ Delimiter { fg = p.bg.li(52) }, -- character that needs attention
+ SpecialComment { Comment, gui = "bold" }, -- special things inside a comment
+ -- Debug { }, -- debugging statements
+
+ -- ("Ignore", below, may be invisible...)
+ -- Ignore { }, -- (preferred) left blank, hidden |hl-Ignore|
+
+ Todo { gui = "bold,underline" }, -- (preferred) anything that needs extra attention; mostly the keywords TODO FIXME and XXX
+
+ -- These groups are for the native LSP client. Some other LSP clients may
+ -- use these groups, or use their own. Consult your LSP client's
+ -- documentation.
+
+ LspReferenceText { ColorColumn }, -- used for highlighting "text" references
+ LspReferenceRead { ColorColumn }, -- used for highlighting "read" references
+ LspReferenceWrite { ColorColumn }, -- used for highlighting "write" references
+
+ LspDiagnosticsDefaultError { Error }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
+ LspDiagnosticsDefaultWarning { WarningMsg }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
+ LspDiagnosticsDefaultInformation { fg = p.water }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
+ LspDiagnosticsDefaultHint { fg = p.blossom }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
+
+ LspDiagnosticsVirtualTextError { LspDiagnosticsDefaultError, bg = p.rose.abs_de(48).da(68) }, -- Used for "Error" diagnostic virtual text
+ LspDiagnosticsVirtualTextWarning { LspDiagnosticsDefaultWarning, bg = p.wood.de(58).da(68) }, -- Used for "Warning" diagnostic virtual text
+ -- LspDiagnosticsVirtualTextInformation { }, -- Used for "Information" diagnostic virtual text
+ -- LspDiagnosticsVirtualTextHint { }, -- Used for "Hint" diagnostic virtual text
+
+ LspDiagnosticsUnderlineError { LspDiagnosticsDefaultError, gui = "undercurl" }, -- Used to underline "Error" diagnostics
+ LspDiagnosticsUnderlineWarning { LspDiagnosticsDefaultWarning, gui = "undercurl" }, -- Used to underline "Warning" diagnostics
+ LspDiagnosticsUnderlineInformation { LspDiagnosticsDefaultInformation, gui = "undercurl" }, -- Used to underline "Information" diagnostics
+ LspDiagnosticsUnderlineHint { LspDiagnosticsDefaultHint, gui = "undercurl" }, -- Used to underline "Hint" diagnostics
+
+ -- LspDiagnosticsFloatingError { }, -- Used to color "Error" diagnostic messages in diagnostics float
+ -- LspDiagnosticsFloatingWarning { }, -- Used to color "Warning" diagnostic messages in diagnostics float
+ -- LspDiagnosticsFloatingInformation { }, -- Used to color "Information" diagnostic messages in diagnostics float
+ -- LspDiagnosticsFloatingHint { }, -- Used to color "Hint" diagnostic messages in diagnostics float
+
+ -- LspDiagnosticsSignError { }, -- Used for "Error" signs in sign column
+ -- LspDiagnosticsSignWarning { }, -- Used for "Warning" signs in sign column
+ -- LspDiagnosticsSignInformation { }, -- Used for "Information" signs in sign column
+ -- LspDiagnosticsSignHint { }, -- Used for "Hint" signs in sign column
+
+ LspCodeLens { LineNr },
+
+ -- These groups are for the neovim tree-sitter highlights.
+ -- As of writing, tree-sitter support is a WIP, group names may change.
+ -- By default, most of these groups link to an appropriate Vim group,
+ -- TSError -> Error for example, so you do not have to define these unless
+ -- you explicitly want to support Treesitter's improved syntax awareness.
+
+ -- TSAnnotation { }; -- For C++/Dart attributes, annotations that can be attached to the code to denote some kind of meta information.
+ -- TSAttribute { }; -- (unstable) TODO: docs
+ -- TSBoolean { }; -- For booleans.
+ -- TSCharacter { }; -- For characters.
+ -- TSComment { }; -- For comment blocks.
+ -- TSConstructor { }; -- For constructor calls and definitions: ` { }` in Lua, and Java constructors.
+ -- TSConditional { }; -- For keywords related to conditionnals.
+ -- TSConstant { }; -- For constants
+ -- TSConstBuiltin { }; -- For constant that are built in the language: `nil` in Lua.
+ -- TSConstMacro { }; -- For constants that are defined by macros: `NULL` in C.
+ -- TSError { }; -- For syntax/parser errors.
+ -- TSException { }; -- For exception related keywords.
+ -- TSField { }; -- For fields.
+ -- TSFloat { }; -- For floats.
+ -- TSFunction { }; -- For function (calls and definitions).
+ -- TSFuncBuiltin { }; -- For builtin functions: `table.insert` in Lua.
+ -- TSFuncMacro { }; -- For macro defined fuctions (calls and definitions): each `macro_rules` in Rust.
+ -- TSInclude { }; -- For includes: `#include` in C, `use` or `extern crate` in Rust, or `require` in Lua.
+ -- TSKeyword { }; -- For keywords that don't fall in previous categories.
+ -- TSKeywordFunction { }; -- For keywords used to define a fuction.
+ -- TSLabel { }; -- For labels: `label:` in C and `:label:` in Lua.
+ -- TSMethod { }; -- For method calls and definitions.
+ -- TSNamespace { }; -- For identifiers referring to modules and namespaces.
+ -- TSNone { }; -- TODO: docs
+ -- TSNumber { }; -- For all numbers
+ -- TSOperator { }; -- For any operator: `+`, but also `->` and `*` in C.
+ -- TSParameter { }; -- For parameters of a function.
+ -- TSParameterReference { }; -- For references to parameters of a function.
+ -- TSProperty { }; -- Same as `TSField`.
+ -- TSPunctDelimiter { }; -- For delimiters ie: `.`
+ -- TSPunctBracket { }; -- For brackets and parens.
+ -- TSPunctSpecial { }; -- For special punctutation that does not fall in the catagories before.
+ -- TSRepeat { }; -- For keywords related to loops.
+ -- TSString { }; -- For strings.
+ -- TSStringRegex { }; -- For regexes.
+ -- TSStringEscape { }; -- For escape characters within a string.
+ -- TSSymbol { }; -- For identifiers referring to symbols or atoms.
+ -- TSType { }; -- For types.
+ -- TSTypeBuiltin { }; -- For builtin types.
+ TSVariable { Identifier }, -- Any variable name that does not have another highlight.
+ -- TSVariableBuiltin { }; -- Variable names that are defined by the languages, like `this` or `self`.
+
+ TSTag { Special }, -- Tags like html tag names.
+ -- TSTagDelimiter { }; -- Tag delimiter like `<` `>` `/`
+ -- TSText { }; -- For strings considered text in a markup language.
+ -- TSEmphasis { }; -- For text to be represented with emphasis.
+ -- TSUnderline { }; -- For text to be represented with an underline.
+ -- TSStrike { }; -- For strikethrough text.
+ -- TSTitle { }; -- Text that is part of a title.
+ -- TSLiteral { }; -- Literal text.
+ -- TSURI { }; -- Any URI like a link or email.
+
+ TSNote { LspDiagnosticsDefaultInformation },
+ TSWarning { WarningMsg },
+ TSDanger { Error },
+
+ -- Syntax
+ diffAdded { fg = p.leaf },
+ diffRemoved { fg = p.rose },
+ diffChanged { fg = p.water },
+ diffOldFile { fg = p.rose, gui = "italic" },
+ diffNewFile { fg = p.leaf, gui = "italic" },
+ diffFile { fg = p.wood, gui = "bold" },
+ diffLine { fg = p.blossom, gui = "bold" },
+ diffIndexLine { fg = p.wood },
+
+ gitcommitOverflow { WarningMsg },
+
+ markdownH1 { Statement, gui = "bold,underline" },
+ markdownH2 { Statement },
+ markdownH3 { Statement },
+ markdownH4 { Special },
+ markdownH5 { Special },
+ markdownH6 { Special },
+ markdownCode { Identifier },
+ markdownLinkTextDelimiter { Delimiter },
+
+ helpHyperTextEntry { Special },
+ helpHyperTextJump { Constant },
+ helpSpecial { Type },
+ helpOption { Constant },
+
+ -- Other plugins
+ GitSignsAdd { fg = p.leaf },
+ GitSignsChange { fg = p.water },
+ GitSignsDelete { fg = p.rose },
+
+ GitGutterAdd { GitSignsAdd },
+ GitGutterChange { GitSignsChange },
+ GitGutterDelete { GitSignsDelete },
+
+ IndentBlanklineChar { fg = p.bg.li(14).de(22) },
+
+ TelescopeSelection { CursorLine },
+ TelescopeSelectionCaret { TelescopeSelection, fg = p.rose },
+ TelescopeMatching { fg = p.blossom, gui = "bold" },
+ TelescopeBorder { FloatBorder },
+
+ Sneak { Search },
+ SneakLabel { WildMenu },
+ SneakLabelMask { bg = p.blossom, fg = p.blossom },
+
+ LightspeedLabel { fg = p.blossom, gui = "bold,underline" },
+ LightspeedLabelOverlapped { fg = p.blossom, gui = "underline" },
+ LightspeedLabelDistant { fg = p.sky, gui = "bold,underline" },
+ LightspeedLabelDistantOverlapped { fg = p.sky, gui = "underline" },
+ LightspeedShortcut { SneakLabel, gui = "bold,underline" },
+ LightspeedOneCharMatch { SneakLabel, gui = "bold" },
+ LightspeedMaskedChar { Conceal },
+ LightspeedUnlabeledMatch { Bold },
+ LightspeedPendingOpArea { SneakLabel },
+ LightspeedPendingChangeOpArea { fg = p.blossom },
+ LightspeedGreyWash { fg = Comment.fg },
+
+ HopNextKey { LightspeedLabel },
+ HopNextKey1 { LightspeedLabelDistant },
+ HopNextKey2 { fg = p.water },
+ HopUnmatched { LightspeedGreyWash } ,
+
+ BufferCurrent { TabLineSel },
+ BufferVisible { fg = StatusLineNC.fg },
+ BufferVisibleSign { fg = StatusLineNC.fg },
+ BufferVisibleIndex { fg = StatusLineNC.fg },
+
+ CocErrorSign { LspDiagnosticsDefaultError },
+ CocWarningSign { LspDiagnosticsDefaultWarning },
+ CocInfoSign { LspDiagnosticsDefaultInformation },
+ CocHintSign { LspDiagnosticsDefaultHint },
+ CocErrorHighlight { LspDiagnosticsUnderlineError },
+ CocWarningHighlight { LspDiagnosticsUnderlineWarning },
+ CocInfoHighlight { LspDiagnosticsUnderlineInformation },
+ CocHintHighlight { LspDiagnosticsUnderlineHint },
+ CocErrorVirtualText { LspDiagnosticsVirtualTextError },
+ CocWarningVitualText { LspDiagnosticsVirtualTextWarning },
+ CocSelectedText { SpellBad },
+ CocCodeLens { LineNr },
+ CocMarkdownLink { fg = p.sky, gui = "underline" },
+
+ NeogitNotificationError { LspDiagnosticsDefaultError },
+ NeogitNotificationWarning { LspDiagnosticsDefaultWarning },
+ NeogitNotificationInfo { LspDiagnosticsDefaultInformation },
+
+ NeogitDiffContextHighlight { CursorLine },
+ NeogitDiffDeleteHighlight { DiffDelete },
+ NeogitDiffAddHighlight { DiffAdd },
+ NeogitHunkHeader { LineNr },
+ NeogitHunkHeaderHighlight { CursorLine, fg = p.fg, gui = "bold" },
+
+ WhichKey { Statement },
+ WhichKeyGroup { Special },
+ WhichKeySeparator { LineNr },
+ WhichKeyValue { Constant },
+
+ TroubleNormal { Function },
+ TroubleText { Function },
+ TroubleSource { Constant },
+ }
+end)
+-- stylua: ignore end
+
+local specs = {
+ theme,
+}
+
+if vim.g.zenflesh_lighten_noncurrent_window then
+ table.insert(
+ specs,
+ lush(function()
+ return {
+ NormalNC { theme.Normal, bg = theme.Normal.bg.abs_li(2) }, -- normal text in non-current windows
+ }
+ end)
+ )
+end
+
+if vim.g.zenflesh_solid_vert_split then
+ table.insert(
+ specs,
+ lush(function()
+ return {
+ VertSplit { bg = theme.StatusLineNC.bg, fg = theme.LineNr.fg }, -- the column separating vertically split windows
+ }
+ end)
+ )
+end
+
+return lush.merge(specs)
+
+-- vi:nowrap
diff --git a/lua/zenflesh/palette.lua b/lua/zenflesh/palette.lua
new file mode 100644
index 0000000..7c21764
--- /dev/null
+++ b/lua/zenflesh/palette.lua
@@ -0,0 +1,13 @@
+local lush = require "lush"
+local hsluv = lush.hsluv
+
+return {
+ bg = hsluv(39, 9, 9), -- sand
+ fg = hsluv(230, 10, 76), -- stone
+ rose = hsluv(6, 62, 60),
+ leaf = hsluv(111, 47, 61),
+ wood = hsluv(32, 47, 58),
+ water = hsluv(236, 64, 61),
+ blossom = hsluv(318, 32, 58),
+ sky = hsluv(204, 61, 64),
+}
diff --git a/lua/zenflesh/terminal.lua b/lua/zenflesh/terminal.lua
new file mode 100644
index 0000000..00021c1
--- /dev/null
+++ b/lua/zenflesh/terminal.lua
@@ -0,0 +1,33 @@
+local lush = require "lush"
+local p = require "zenflesh.palette"
+
+local colors = {
+ p.bg,
+ p.rose,
+ p.leaf,
+ p.wood,
+ p.water,
+ p.blossom,
+ p.sky,
+ p.fg,
+ p.bg.sa(4).li(16),
+ p.rose.sa(20).li(16),
+ p.leaf.sa(20).li(16),
+ p.wood.sa(18).li(16),
+ p.water.sa(20).li(16),
+ p.blossom.sa(24).li(16),
+ p.sky.sa(20).li(16),
+ p.fg.da(22),
+}
+
+local M = {}
+
+M.colors = colors
+
+function M.setup()
+ for i, v in ipairs(colors) do
+ vim.g["terminal_color_" .. (i - 1)] = v.hex
+ end
+end
+
+return M