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. -![Zenbones main image](https://user-images.githubusercontent.com/7200153/131045472-05c76909-0071-4c24-bd30-f15da3ae4e82.jpg) +![Zenbones main image](https://user-images.githubusercontent.com/7200153/133774819-32b4e18b-6af7-48ac-91d5-16c4f413ad20.jpg)

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** - -Vim diff - -**Search matches** - -Search matches - -**LSP diagnostics** - -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' | +| :-----------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------: | +| ![Bright lightness](https://user-images.githubusercontent.com/7200153/133776552-5919f664-17d9-4d96-bf44-d587f20b01dc.png) | ![Default lightness](https://user-images.githubusercontent.com/7200153/133776625-d8e9dd88-13b3-4362-9cad-2031ef6ccf7d.png) | ![Dim lightness](https://user-images.githubusercontent.com/7200153/133776674-ff7d15e9-52e3-4a27-9099-722ffcbe1cb8.png) | -Bright lightness +#### g:zenflesh_darkness -**Default** _(unset)_ +Change background colors darkness. -Default lightness - -**'dim'** - -Dim lightness +| 'stark' | _(unset)_ | 'warm' | +| :---------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------: | +| ![Stark darkness](https://user-images.githubusercontent.com/7200153/133776839-4b12c3dd-233f-47d1-9740-006bf50e812a.png) | ![Default darkness](https://user-images.githubusercontent.com/7200153/133776882-26d006b4-50db-49ad-bd79-3bec327a95fc.png) | ![Warm darkness](https://user-images.githubusercontent.com/7200153/133776957-3d2949c9-51b6-4537-aca4-6ced80113b91.png) | #### 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