From 8c7d5f320315fcb073522840951285bb71688a08 Mon Sep 17 00:00:00 2001 From: finn Date: Sun, 26 Apr 2026 12:30:40 -0700 Subject: [PATCH] inkbones --- README.md | 1 + colors/inkbones.vim | 270 ++++++++++++++++++++++++++++++++++++++ extras/tmux/inkbones.tmux | 19 +++ lua/inkbones/init.lua | 5 + lua/inkbones/palette.lua | 20 +++ zenbones.json | 5 + 6 files changed, 320 insertions(+) create mode 100644 colors/inkbones.vim create mode 100644 extras/tmux/inkbones.tmux create mode 100644 lua/inkbones/init.lua create mode 100644 lua/inkbones/palette.lua diff --git a/README.md b/README.md index 8792e94..5fbc755 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,7 @@ Or choose from the collection: | `duckbones` | Inspired by [Spaceduck](https://pineapplegiant.github.io/spaceduck) | | `zenburned` | Inspired by [Zenburn](https://kippura.org/zenburnpage) | | `kanagawabones` | Inspired by [Kanagawa](https://github.com/rebelot/kanagawa.nvim) | +| `inkbones` | E-ink friendly variant with a greyscale gradient and pure white background | | `randombones` | Randomly pick from the collection. | ## [Configuration and other documentations](doc/zenbones.md) diff --git a/colors/inkbones.vim b/colors/inkbones.vim new file mode 100644 index 0000000..9e92842 --- /dev/null +++ b/colors/inkbones.vim @@ -0,0 +1,270 @@ +if exists('g:colors_name') + highlight clear +endif + +let g:colors_name = 'inkbones' +set background=light + +if has('nvim') && !bones#_compat(g:colors_name) + lua require("zenbones.util").apply_colorscheme() + finish +endif + +let s:italics = (&t_ZH != '' && &t_ZH != '') || has('gui_running') || has('nvim') + +if &background ==# 'light' + " light start + " This codeblock is auto-generated by shipwright.nvim + let g:terminal_color_0 = '#FFFFFF' + let g:terminal_color_1 = '#3B3B3B' + let g:terminal_color_2 = '#525252' + let g:terminal_color_3 = '#848484' + let g:terminal_color_4 = '#6A6A6A' + let g:terminal_color_5 = '#474747' + let g:terminal_color_6 = '#777777' + let g:terminal_color_7 = '#1F1F1F' + let g:terminal_color_8 = '#D1D1D1' + let g:terminal_color_9 = '#2E2E2E' + let g:terminal_color_10 = '#444444' + let g:terminal_color_11 = '#6F6F6F' + let g:terminal_color_12 = '#575757' + let g:terminal_color_13 = '#353535' + let g:terminal_color_14 = '#636363' + let g:terminal_color_15 = '#636363' + highlight Normal guifg=#1F1F1F guibg=#FFFFFF guisp=NONE gui=NONE cterm=NONE + highlight! link ModeMsg Normal + highlight Bold guifg=NONE guibg=NONE guisp=NONE gui=bold cterm=bold + highlight Boolean guifg=#1F1F1F guibg=NONE guisp=NONE gui=italic cterm=italic + highlight BufferVisible guifg=#5E5E5E guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight BufferVisibleIndex guifg=#5E5E5E guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight BufferVisibleSign guifg=#5E5E5E guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight CocMarkdownLink guifg=#777777 guibg=NONE guisp=NONE gui=underline cterm=underline + highlight ColorColumn guifg=NONE guibg=#F0F0F0 guisp=NONE gui=NONE cterm=NONE + highlight! link LspReferenceRead ColorColumn + highlight! link LspReferenceText ColorColumn + highlight! link LspReferenceWrite ColorColumn + highlight Comment guifg=#969696 guibg=NONE guisp=NONE gui=italic cterm=italic + highlight Conceal guifg=#666666 guibg=NONE guisp=NONE gui=bold,italic cterm=bold,italic + highlight Constant guifg=#575757 guibg=NONE guisp=NONE gui=italic cterm=italic + highlight! link Character Constant + highlight! link TroubleSource Constant + highlight! link WhichKeyValue Constant + highlight! link helpOption Constant + highlight Cursor guifg=#FFFFFF guibg=#1F1F1F guisp=NONE gui=NONE cterm=NONE + highlight! link TermCursor Cursor + highlight CursorLine guifg=NONE guibg=#F6F6F6 guisp=NONE gui=NONE cterm=NONE + highlight! link CocMenuSel CursorLine + highlight! link CursorColumn CursorLine + highlight! link FzfLuaFzfCursorLine CursorLine + highlight! link SnacksPickerListCursorLine CursorLine + highlight! link SnacksPickerPreviewCursorLine CursorLine + highlight CursorLineNr guifg=#1F1F1F guibg=NONE guisp=NONE gui=bold cterm=bold + highlight Delimiter guifg=#8B8B8B guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link markdownLinkTextDelimiter Delimiter + highlight! link NotifyERRORIcon DiagnosticError + highlight! link NotifyERRORTitle DiagnosticError + highlight DiagnosticHint guifg=#474747 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link NotifyDEBUGIcon DiagnosticHint + highlight! link NotifyDEBUGTitle DiagnosticHint + highlight! link NotifyTRACEIcon DiagnosticHint + highlight! link NotifyTRACETitle DiagnosticHint + highlight DiagnosticInfo guifg=#6A6A6A guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link NotifyINFOIcon DiagnosticInfo + highlight! link NotifyINFOTitle DiagnosticInfo + highlight DiagnosticOk guifg=#525252 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight DiagnosticSignError guifg=#3B3B3B guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link CocErrorSign DiagnosticSignError + highlight DiagnosticSignHint guifg=#474747 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link CocHintSign DiagnosticSignHint + highlight DiagnosticSignInfo guifg=#6A6A6A guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link CocInfoSign DiagnosticSignInfo + highlight DiagnosticSignOk guifg=#525252 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight DiagnosticSignWarn guifg=#848484 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link CocWarningSign DiagnosticSignWarn + highlight DiagnosticUnderlineError guifg=NONE guibg=NONE guisp=#3B3B3B gui=undercurl cterm=undercurl + highlight! link CocErrorHighlight DiagnosticUnderlineError + highlight DiagnosticUnderlineHint guifg=NONE guibg=NONE guisp=#474747 gui=undercurl cterm=undercurl + highlight! link CocHintHighlight DiagnosticUnderlineHint + highlight DiagnosticUnderlineInfo guifg=NONE guibg=NONE guisp=#6A6A6A gui=undercurl cterm=undercurl + highlight! link CocInfoHighlight DiagnosticUnderlineInfo + highlight DiagnosticUnderlineOk guifg=NONE guibg=NONE guisp=#525252 gui=undercurl cterm=undercurl + highlight DiagnosticUnderlineWarn guifg=NONE guibg=NONE guisp=#848484 gui=undercurl cterm=undercurl + highlight! link CocWarningHighlight DiagnosticUnderlineWarn + highlight DiagnosticVirtualTextError guifg=#3B3B3B guibg=#F3F3F3 guisp=NONE gui=NONE cterm=NONE + highlight! link CocErrorVirtualText DiagnosticVirtualTextError + highlight DiagnosticVirtualTextHint guifg=#474747 guibg=#F3F3F3 guisp=NONE gui=NONE cterm=NONE + highlight DiagnosticVirtualTextInfo guifg=#6A6A6A guibg=#F3F3F3 guisp=NONE gui=NONE cterm=NONE + highlight DiagnosticVirtualTextOk guifg=#525252 guibg=#F3F3F3 guisp=NONE gui=NONE cterm=NONE + highlight DiagnosticVirtualTextWarn guifg=#848484 guibg=#F3F3F3 guisp=NONE gui=NONE cterm=NONE + highlight! link CocWarningVirtualText DiagnosticVirtualTextWarn + highlight! link DiagnosticDeprecated DiagnosticWarn + highlight! link DiagnosticUnnecessary DiagnosticWarn + highlight! link NotifyWARNIcon DiagnosticWarn + highlight! link NotifyWARNTitle DiagnosticWarn + highlight DiffAdd guifg=NONE guibg=#EEEEEE guisp=NONE gui=NONE cterm=NONE + highlight! link diffAdded DiffAdd + highlight DiffChange guifg=NONE guibg=#E8E8E8 guisp=NONE gui=NONE cterm=NONE + highlight! link diffChanged DiffChange + highlight DiffDelete guifg=NONE guibg=#F3F3F3 guisp=NONE gui=NONE cterm=NONE + highlight! link diffRemoved DiffDelete + highlight DiffText guifg=#1F1F1F guibg=#CCCCCC guisp=NONE gui=NONE cterm=NONE + highlight Directory guifg=NONE guibg=NONE guisp=NONE gui=bold cterm=bold + highlight Error guifg=#3B3B3B guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link DiagnosticError Error + highlight! link ErrorMsg Error + highlight FlashBackdrop guifg=#969696 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight FlashLabel guifg=#1F1F1F guibg=#E0E0E0 guisp=NONE gui=NONE cterm=NONE + highlight FloatBorder guifg=#777777 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight FloatTitle guifg=#1F1F1F guibg=#E8E8E8 guisp=NONE gui=bold cterm=bold + highlight FoldColumn guifg=#A3A3A3 guibg=NONE guisp=NONE gui=bold cterm=bold + highlight Folded guifg=#555555 guibg=#D1D1D1 guisp=NONE gui=NONE cterm=NONE + highlight Function guifg=#1F1F1F guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link TroubleNormal Function + highlight! link TroubleText Function + highlight FzfLuaBufFlagAlt guifg=#6A6A6A guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight FzfLuaBufFlagCur guifg=#848484 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight FzfLuaBufNr guifg=#525252 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight FzfLuaFzfMatch guifg=#474747 guibg=NONE guisp=NONE gui=bold cterm=bold + highlight FzfLuaHeaderBind guifg=#525252 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight FzfLuaHeaderText guifg=#848484 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight FzfLuaLiveSym guifg=#848484 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight FzfLuaPathColNr guifg=#5E5E5E guibg=NONE guisp=NONE gui=bold cterm=bold + highlight! link FzfLuaPathLineNr FzfLuaPathColNr + highlight FzfLuaTabMarker guifg=#525252 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight FzfLuaTabTitle guifg=#777777 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight GitSignsAdd guifg=#525252 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link GitGutterAdd GitSignsAdd + highlight GitSignsChange guifg=#6A6A6A guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link GitGutterChange GitSignsChange + highlight GitSignsDelete guifg=#3B3B3B guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link GitGutterDelete GitSignsDelete + highlight IblIndent guifg=#EEEEEE guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link IndentLine IblIndent + highlight IblScope guifg=#C1C1C1 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link IndentLineCurrent IblScope + highlight Identifier guifg=#404040 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight IncSearch guifg=#FFFFFF guibg=#9E9E9E guisp=NONE gui=bold cterm=bold + highlight! link CurSearch IncSearch + highlight Italic guifg=NONE guibg=NONE guisp=NONE gui=italic cterm=italic + highlight LineNr guifg=#A3A3A3 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link CocCodeLens LineNr + highlight! link LspCodeLens LineNr + highlight! link SignColumn LineNr + highlight LspInlayHint guifg=#9B9B9B guibg=#F9F9F9 guisp=NONE gui=NONE cterm=NONE + highlight MoreMsg guifg=#525252 guibg=NONE guisp=NONE gui=bold cterm=bold + highlight! link Question MoreMsg + highlight! link NnnNormalNC NnnNormal + highlight! link NnnVertSplit NnnWinSeparator + highlight NonText guifg=#B9B9B9 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link EndOfBuffer NonText + highlight! link Whitespace NonText + highlight NormalFloat guifg=NONE guibg=#E8E8E8 guisp=NONE gui=NONE cterm=NONE + highlight! link SnacksPickerBorder NormalFloat + highlight Number guifg=#575757 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link Float Number + highlight Pmenu guifg=NONE guibg=#E2E2E2 guisp=NONE gui=NONE cterm=NONE + highlight PmenuSbar guifg=NONE guibg=#B0B0B0 guisp=NONE gui=NONE cterm=NONE + highlight PmenuSel guifg=NONE guibg=#C6C6C6 guisp=NONE gui=NONE cterm=NONE + highlight PmenuThumb guifg=NONE guibg=#FCFCFC guisp=NONE gui=NONE cterm=NONE + highlight RenderMarkdownCode guifg=NONE guibg=#F9F9F9 guisp=NONE gui=NONE cterm=NONE + highlight Search guifg=#1F1F1F guibg=#D4D4D4 guisp=NONE gui=NONE cterm=NONE + highlight! link CocSearch Search + highlight! link MatchParen Search + highlight! link QuickFixLine Search + highlight! link Sneak Search + highlight SnacksIndent guifg=#EEEEEE guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight SnacksIndentScope guifg=#C1C1C1 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight SnacksPickerMatch guifg=#474747 guibg=NONE guisp=NONE gui=bold cterm=bold + highlight SneakLabelMask guifg=#474747 guibg=#474747 guisp=NONE gui=NONE cterm=NONE + highlight Special guifg=#505050 guibg=NONE guisp=NONE gui=bold cterm=bold + highlight! link WhichKeyGroup Special + highlight SpecialComment guifg=#969696 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link markdownUrl SpecialComment + highlight SpecialKey guifg=#B9B9B9 guibg=NONE guisp=NONE gui=italic cterm=italic + highlight SpellBad guifg=#1A1A1A guibg=NONE guisp=#3B3B3B gui=undercurl cterm=undercurl + highlight! link CocSelectedText SpellBad + highlight SpellCap guifg=#1A1A1A guibg=NONE guisp=#525252 gui=undercurl cterm=undercurl + highlight! link SpellLocal SpellCap + highlight SpellRare guifg=#1A1A1A guibg=NONE guisp=#848484 gui=undercurl cterm=undercurl + highlight Statement guifg=#1F1F1F guibg=NONE guisp=NONE gui=bold cterm=bold + highlight! link FzfLuaBufName Statement + highlight! link PreProc Statement + highlight! link WhichKey Statement + highlight StatusLine guifg=#1F1F1F guibg=#DDDDDD guisp=NONE gui=NONE cterm=NONE + highlight! link TabLine StatusLine + highlight! link WinBar StatusLine + highlight StatusLineNC guifg=#5E5E5E guibg=#EEEEEE guisp=NONE gui=NONE cterm=NONE + highlight! link TabLineFill StatusLineNC + highlight! link WinBarNC StatusLineNC + highlight String guifg=#575757 guibg=NONE guisp=NONE gui=italic cterm=italic + highlight TabLineSel guifg=NONE guibg=NONE guisp=NONE gui=bold cterm=bold + highlight! link BufferCurrent TabLineSel + highlight Title guifg=#1F1F1F guibg=NONE guisp=NONE gui=bold cterm=bold + highlight! link FzfLuaTitle Title + highlight Todo guifg=NONE guibg=NONE guisp=NONE gui=bold,underline cterm=bold,underline + highlight Type guifg=#5E5E5E guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link helpSpecial Type + highlight! link markdownCode Type + highlight Underlined guifg=NONE guibg=NONE guisp=NONE gui=underline cterm=underline + highlight Visual guifg=NONE guibg=#E8E8E8 guisp=NONE gui=NONE cterm=NONE + highlight WarningMsg guifg=#848484 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link DiagnosticWarn WarningMsg + highlight! link gitcommitOverflow WarningMsg + highlight WhichKeySeparator guifg=#A3A3A3 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight WildMenu guifg=#FFFFFF guibg=#474747 guisp=NONE gui=NONE cterm=NONE + highlight! link SneakLabel WildMenu + highlight WinSeparator guifg=#A3A3A3 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight! link VertSplit WinSeparator + highlight diffFile guifg=#848484 guibg=NONE guisp=NONE gui=bold cterm=bold + highlight diffIndexLine guifg=#848484 guibg=NONE guisp=NONE gui=NONE cterm=NONE + highlight diffLine guifg=#474747 guibg=NONE guisp=NONE gui=bold cterm=bold + highlight diffNewFile guifg=#525252 guibg=NONE guisp=NONE gui=italic cterm=italic + highlight diffOldFile guifg=#3B3B3B guibg=NONE guisp=NONE gui=italic cterm=italic + highlight helpHyperTextEntry guifg=#5E5E5E guibg=NONE guisp=NONE gui=bold cterm=bold + highlight helpHyperTextJump guifg=#404040 guibg=NONE guisp=NONE gui=underline cterm=underline + highlight lCursor guifg=#FFFFFF guibg=#4B4B4B guisp=NONE gui=NONE cterm=NONE + highlight! link TermCursorNC lCursor + highlight markdownLinkText guifg=#404040 guibg=NONE guisp=NONE gui=underline cterm=underline + " light end + + if !s:italics + " no italics light start + " This codeblock is auto-generated by shipwright.nvim + highlight Boolean gui=NONE cterm=NONE + highlight Character gui=NONE cterm=NONE + highlight Comment gui=NONE cterm=NONE + highlight Constant gui=NONE cterm=NONE + highlight SpecialKey gui=NONE cterm=NONE + highlight String gui=NONE cterm=NONE + highlight TroubleSource gui=NONE cterm=NONE + highlight WhichKeyValue gui=NONE cterm=NONE + highlight diffNewFile gui=NONE cterm=NONE + highlight diffOldFile gui=NONE cterm=NONE + highlight helpOption gui=NONE cterm=NONE + " no italics light end + endif +endif + +if has('terminal') + highlight! link StatusLineTerm StatusLine + highlight! link StatusLineTermNC StatusLineNC + 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 + diff --git a/extras/tmux/inkbones.tmux b/extras/tmux/inkbones.tmux new file mode 100644 index 0000000..a302efa --- /dev/null +++ b/extras/tmux/inkbones.tmux @@ -0,0 +1,19 @@ +# This file is auto-generated by shipwright.nvim +set -g status-left ' #[fg=#474747,bold]#{s/root//:client_key_table} ' +set -g status-right '#[fg=#474747,bold] [#S]#[fg=#474747,bold] [%d/%m] #[fg=#474747,bold][%I:%M%p] ' +set -g status-style fg='#474747',bg='#1F1F1F' + +set -g window-status-current-style fg='#474747',bg='#1F1F1F',bold + +set -g pane-border-style fg='#474747' +set -g pane-active-border-style fg='#474747' + +set -g message-style fg='#FFFFFF',bg='#E8E8E8' + +set -g display-panes-active-colour '#474747' +set -g display-panes-colour '#474747' + +set -g clock-mode-colour '#474747' + +set -g mode-style fg='#FFFFFF',bg='#E8E8E8' + diff --git a/lua/inkbones/init.lua b/lua/inkbones/init.lua new file mode 100644 index 0000000..9dadfdd --- /dev/null +++ b/lua/inkbones/init.lua @@ -0,0 +1,5 @@ +local generator = require "zenbones.specs" +local p = require("inkbones.palette").light + +return generator.generate(p, "light", generator.get_global_config("inkbones", "light")) + diff --git a/lua/inkbones/palette.lua b/lua/inkbones/palette.lua new file mode 100644 index 0000000..37c41e5 --- /dev/null +++ b/lua/inkbones/palette.lua @@ -0,0 +1,20 @@ +local util = require "zenbones.util" +local lush = require "lush" +local hsluv = lush.hsluv + +local M = {} + +M.light = util.palette_extend({ + bg = hsluv(0, 0, 100), -- pure white + fg = hsluv(0, 0, 12), -- near black + -- Greyscale "colors" at different lightness levels for diagnostics/diffs/etc. + rose = hsluv(0, 0, 25), -- darkest accent (error, delete) + leaf = hsluv(0, 0, 35), -- dark grey (success, add) + wood = hsluv(0, 0, 55), -- medium-light grey (warning) + water = hsluv(0, 0, 45), -- medium grey (info, change) + blossom = hsluv(0, 0, 30), -- dark-medium grey (hint, search) + sky = hsluv(0, 0, 50), -- medium grey (special) +}, "light") + +return M + diff --git a/zenbones.json b/zenbones.json index 543ccd3..81db304 100644 --- a/zenbones.json +++ b/zenbones.json @@ -51,5 +51,10 @@ "name": "kanagawabones", "background": "dark", "description": "A zenbones variant inspired by Kanagawa." + }, + { + "name": "inkbones", + "background": "light", + "description": "An e-ink friendly zenbones variant with greyscale gradient." } ] -- 2.49.1