2021-10-27 09:15:29 +00:00
|
|
|
|
*zenbones.txt* A collection of contrast-based vim/neovim colorschemes
|
2021-08-27 02:01:48 +00:00
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
|
Table of Contents *zenbones-table-of-contents*
|
|
|
|
|
|
|
2021-11-03 08:30:05 +00:00
|
|
|
|
1. Documentation |zenbones-documentation|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
- Requirement |zenbones-documentation-requirement|
|
|
|
|
|
|
- Usage |zenbones-documentation-usage|
|
|
|
|
|
|
- Configuration |zenbones-documentation-configuration|
|
|
|
|
|
|
- Advanced Usage |zenbones-documentation-advanced-usage|
|
2021-08-27 02:01:48 +00:00
|
|
|
|
|
2021-09-18 08:12:24 +00:00
|
|
|
|
==============================================================================
|
2021-11-03 08:30:05 +00:00
|
|
|
|
1. Documentation *zenbones-documentation*
|
2021-08-27 02:01:48 +00:00
|
|
|
|
|
2021-12-03 18:48:54 +08:00
|
|
|
|
A collection of Vim/Neovim colorschemes designed to highlight code using
|
|
|
|
|
|
contrasts and font variations.
|
2021-08-27 02:01:48 +00:00
|
|
|
|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
|
|
|
|
|
|
REQUIREMENT *zenbones-documentation-requirement*
|
2022-10-22 09:50:33 +08:00
|
|
|
|
|
|
|
|
|
|
- Neovim v0.8.0 (use v2.0.0 for older versions) or Vim 8.1
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
USAGE *zenbones-documentation-usage*
|
2021-08-27 02:01:48 +00:00
|
|
|
|
|
|
|
|
|
|
Just apply the colorscheme as usual:
|
|
|
|
|
|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
>vim
|
2021-10-27 09:15:29 +00:00
|
|
|
|
set termguicolors
|
2021-11-04 01:47:43 +00:00
|
|
|
|
set background=light " or dark
|
2021-10-27 09:15:29 +00:00
|
|
|
|
|
2021-11-01 09:08:11 +00:00
|
|
|
|
colorscheme zenbones
|
2021-09-21 11:30:30 +00:00
|
|
|
|
|
2021-11-07 01:33:11 +00:00
|
|
|
|
" or any from the collection
|
|
|
|
|
|
colorscheme zenwritten
|
|
|
|
|
|
colorscheme neobones
|
|
|
|
|
|
colorscheme vimbones
|
|
|
|
|
|
colorscheme rosebones
|
|
|
|
|
|
colorscheme forestbones
|
|
|
|
|
|
colorscheme nordbones
|
|
|
|
|
|
colorscheme tokyobones
|
2021-11-12 08:25:33 +00:00
|
|
|
|
colorscheme seoulbones
|
2021-11-07 01:33:11 +00:00
|
|
|
|
colorscheme duckbones
|
|
|
|
|
|
colorscheme zenburned
|
2021-12-25 08:21:30 +08:00
|
|
|
|
colorscheme kanagawabones
|
2021-11-07 01:33:11 +00:00
|
|
|
|
colorscheme randombones
|
2021-08-27 02:01:48 +00:00
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
CONFIGURATION *zenbones-documentation-configuration*
|
2021-08-30 01:35:08 +00:00
|
|
|
|
|
2021-11-03 08:30:05 +00:00
|
|
|
|
Configuration is only available for Neovim. There are two ways to set
|
2021-10-27 10:10:04 +00:00
|
|
|
|
configuration. First:
|
2021-10-27 09:15:29 +00:00
|
|
|
|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
>vim
|
2021-10-28 06:28:36 +08:00
|
|
|
|
" vimscript
|
2021-10-27 10:10:04 +00:00
|
|
|
|
let g:zenbones_solid_line_nr = v:true
|
|
|
|
|
|
let g:zenbones_darken_comments = 45
|
2021-10-27 09:15:29 +00:00
|
|
|
|
<
|
|
|
|
|
|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
>lua
|
2021-10-28 06:28:36 +08:00
|
|
|
|
-- lua
|
2021-10-27 10:10:04 +00:00
|
|
|
|
vim.g.zenbones_solid_line_nr = true
|
|
|
|
|
|
vim.g.zenbones_darken_comments = 45
|
2021-10-27 09:15:29 +00:00
|
|
|
|
<
|
|
|
|
|
|
|
2021-10-27 10:10:04 +00:00
|
|
|
|
Second way is to set configuration is to assign a dictionary to the prefix:
|
2021-09-05 01:23:38 +00:00
|
|
|
|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
>vim
|
2021-10-28 06:28:36 +08:00
|
|
|
|
" vimscript
|
2021-10-27 10:10:04 +00:00
|
|
|
|
let g:forestbones = #{ solid_line_nr: v:true, darken_comments: 45 }
|
|
|
|
|
|
<
|
2021-10-26 09:36:29 +00:00
|
|
|
|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
>lua
|
2021-10-28 06:28:36 +08:00
|
|
|
|
-- lua
|
2021-10-27 10:10:04 +00:00
|
|
|
|
vim.g.forestbones = { solid_line_nr = true, darken_comments = 45 }
|
|
|
|
|
|
<
|
2021-10-26 09:36:29 +00:00
|
|
|
|
|
2021-10-27 10:10:04 +00:00
|
|
|
|
**Notes**: Flavors accept their own configuration by replacing the prefix with
|
|
|
|
|
|
the flavor name e.g. `g:rosebones_italic_comments`.
|
|
|
|
|
|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
-----------------------------------------------------------------------------------------------------
|
|
|
|
|
|
Option Background Default Description
|
|
|
|
|
|
------------------------------------ ------------ --------- -----------------------------------------
|
|
|
|
|
|
lightness light nil Change background colors lightness.
|
|
|
|
|
|
Options: 'bright', 'dim'.
|
|
|
|
|
|
|
|
|
|
|
|
darkness dark nil Change background colors darkness.
|
|
|
|
|
|
Options: 'stark', 'warm'.
|
|
|
|
|
|
|
|
|
|
|
|
solid_vert_split both false Solid |hl-VertSplit| background.
|
|
|
|
|
|
|
|
|
|
|
|
solid_line_nr both false Solid |hl-LineNr| background.
|
|
|
|
|
|
|
|
|
|
|
|
solid_float_border both false Make |hl-FloatBorder| have a more
|
|
|
|
|
|
distinguishable background highlight.
|
|
|
|
|
|
|
|
|
|
|
|
darken_noncurrent_window light false Make non-current window background darker
|
|
|
|
|
|
than Normal.
|
|
|
|
|
|
|
|
|
|
|
|
lighten_noncurrent_window dark false Make non-current window background
|
|
|
|
|
|
lighter than Normal.
|
|
|
|
|
|
|
|
|
|
|
|
italic_comments both true Make comments italicize.
|
|
|
|
|
|
|
|
|
|
|
|
darken_comments light 38 Percentage to darken comments relative to
|
|
|
|
|
|
Normal bg.
|
|
|
|
|
|
|
|
|
|
|
|
lighten_comments dark 38 Percentage to lighten comments relative
|
|
|
|
|
|
to Normal bg.
|
|
|
|
|
|
|
|
|
|
|
|
darken_non_text light 25 Percentage to darken |hl-NonText|
|
|
|
|
|
|
relative to Normal bg.
|
|
|
|
|
|
|
|
|
|
|
|
lighten_non_text dark 30 Percentage to lighten |hl-NonText|
|
|
|
|
|
|
relative to Normal bg.
|
|
|
|
|
|
|
|
|
|
|
|
darken_line_nr light 33 Percentage to darken |hl-LineNr| relative
|
|
|
|
|
|
to Normal bg.
|
|
|
|
|
|
|
|
|
|
|
|
lighten_line_nr dark 35 Percentage to lighten |hl-LineNr|
|
|
|
|
|
|
relative to Normal bg.
|
|
|
|
|
|
|
|
|
|
|
|
darken_cursor_line light 3 Percentage to darken |hl-CursorLine|
|
|
|
|
|
|
relative to Normal bg.
|
|
|
|
|
|
|
|
|
|
|
|
lighten_cursor_line dark 4 Percentage to lighten |hl-CursorLine|
|
|
|
|
|
|
relative to Normal bg.
|
|
|
|
|
|
|
|
|
|
|
|
colorize_diagnostic_underline_text both false Colorize the fg of DiagnosticUnderline*.
|
|
|
|
|
|
|
|
|
|
|
|
transparent_background both false Make background transparent.
|
|
|
|
|
|
-----------------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
G:BONES_COMPAT
|
|
|
|
|
|
|
|
|
|
|
|
Set to `1` to enable compatibility mode for all colorschemes. Enabled in Vim.
|
|
|
|
|
|
To enable/disable compatibility mode for a specific theme, set the variable
|
|
|
|
|
|
`g:{theme}_compat` to `0` or `1`, e.g. `let g:zenbones_compat = 1`.
|
2021-10-10 11:28:39 +00:00
|
|
|
|
|
|
|
|
|
|
|
2021-10-28 23:53:41 +00:00
|
|
|
|
LIGHTLINE ~
|
2021-09-30 23:42:01 +00:00
|
|
|
|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
>vim
|
2021-11-07 01:33:11 +00:00
|
|
|
|
let g:lightline = #{ colorscheme: 'zenbones' } " or any other flavor
|
2021-09-30 23:42:01 +00:00
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-28 23:53:41 +00:00
|
|
|
|
LUALINE ~
|
2021-09-30 23:42:01 +00:00
|
|
|
|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
>lua
|
2021-10-28 23:53:41 +00:00
|
|
|
|
require("lualine").setup {
|
2021-11-07 01:33:11 +00:00
|
|
|
|
options = { theme = "zenbones" }, -- or any other flavor
|
2021-10-28 23:53:41 +00:00
|
|
|
|
}
|
2021-09-30 23:42:01 +00:00
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
ADVANCED USAGE *zenbones-documentation-advanced-usage*
|
2021-09-05 00:19:48 +00:00
|
|
|
|
|
2021-09-12 06:41:36 +00:00
|
|
|
|
Zenbones is pretty extensible thanks to Lush. You can easily retrieve the
|
|
|
|
|
|
colors in lua:
|
2021-09-05 00:19:48 +00:00
|
|
|
|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
>lua
|
2021-11-07 01:33:11 +00:00
|
|
|
|
local theme = require "zenbones" -- or any other flavor
|
2021-09-12 14:19:33 +08:00
|
|
|
|
local palette = require "zenbones.palette"
|
2021-09-05 00:19:48 +00:00
|
|
|
|
|
|
|
|
|
|
print(theme.StatusLine.bg.hex)
|
2021-09-17 11:55:56 +00:00
|
|
|
|
print(palette.blossom.darken(20).hex)
|
2021-09-05 00:19:48 +00:00
|
|
|
|
<
|
|
|
|
|
|
|
2021-08-31 02:48:36 +00:00
|
|
|
|
|
2021-11-03 08:30:05 +00:00
|
|
|
|
EXTEND/OVERRIDE HIGHLIGHTS ~
|
|
|
|
|
|
|
2021-10-11 05:57:15 +00:00
|
|
|
|
Here’s an example of how to extend/override some highlights.
|
|
|
|
|
|
|
|
|
|
|
|
`lua/customize_zenbones.lua`:
|
2021-10-10 07:09:46 +00:00
|
|
|
|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
>lua
|
2021-10-28 23:53:41 +00:00
|
|
|
|
local lush = require "lush"
|
|
|
|
|
|
local base = require "zenbones"
|
2021-10-10 07:09:46 +00:00
|
|
|
|
|
2021-10-28 23:53:41 +00:00
|
|
|
|
-- Create some specs
|
|
|
|
|
|
local specs = lush.parse(function()
|
|
|
|
|
|
return {
|
|
|
|
|
|
TabLine { base.TabLine, gui = "italic" }, -- setting gui to "italic"
|
|
|
|
|
|
}
|
|
|
|
|
|
end)
|
|
|
|
|
|
-- Apply specs using lush tool-chain
|
|
|
|
|
|
lush.apply(lush.compile(specs))
|
2021-10-10 07:09:46 +00:00
|
|
|
|
<
|
|
|
|
|
|
|
2021-10-11 05:57:15 +00:00
|
|
|
|
And then somewhere in your `init.vim`:
|
2021-10-10 07:09:46 +00:00
|
|
|
|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
>vim
|
2021-10-28 23:53:41 +00:00
|
|
|
|
autocmd ColorScheme zenbones lua require "customize_zenbones"
|
|
|
|
|
|
colorscheme zenbones
|
2021-10-10 07:09:46 +00:00
|
|
|
|
<
|
|
|
|
|
|
|
2021-09-05 01:23:38 +00:00
|
|
|
|
See also Lush’s documentation
|
2021-09-12 06:41:36 +00:00
|
|
|
|
<https://github.com/rktjmp/lush.nvim#advanced-usage> for more options.
|
2021-08-31 02:48:36 +00:00
|
|
|
|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
|
2021-09-22 10:22:33 +00:00
|
|
|
|
CREATE YOUR OWN COLORSCHEME ~
|
|
|
|
|
|
|
2021-10-27 09:15:29 +00:00
|
|
|
|
You can ultimately create your own colorscheme that is based on zenbones by
|
2021-10-11 05:57:15 +00:00
|
|
|
|
defining a palette and generating a specs. Best way to demonstrate this is
|
|
|
|
|
|
through an example. Let’s make a zenbones-flavored Gruvbox colorscheme called
|
|
|
|
|
|
`gruvbones`.
|
2021-09-22 10:22:33 +00:00
|
|
|
|
|
2021-10-20 22:35:35 +00:00
|
|
|
|
Let’s define our |colorscheme| in `colors/gruvbones.lua`. It contains the
|
|
|
|
|
|
following:
|
2021-09-22 10:22:33 +00:00
|
|
|
|
|
2023-04-09 13:55:17 +08:00
|
|
|
|
>lua
|
2021-10-20 22:35:35 +00:00
|
|
|
|
local colors_name = "gruvbones"
|
|
|
|
|
|
vim.g.colors_name = colors_name -- Required when defining a colorscheme
|
2021-09-22 10:22:33 +00:00
|
|
|
|
|
|
|
|
|
|
local lush = require "lush"
|
2021-10-11 05:57:15 +00:00
|
|
|
|
local hsluv = lush.hsluv -- Human-friendly hsl
|
2021-10-10 07:09:46 +00:00
|
|
|
|
local util = require "zenbones.util"
|
|
|
|
|
|
|
2022-10-22 09:32:57 +08:00
|
|
|
|
local bg = vim.o.background
|
2021-09-22 10:22:33 +00:00
|
|
|
|
|
2021-10-11 05:57:15 +00:00
|
|
|
|
-- Define a palette. Use `palette_extend` to fill unspecified colors
|
|
|
|
|
|
-- Based on https://github.com/gruvbox-community/gruvbox#palette
|
2021-10-10 07:09:46 +00:00
|
|
|
|
local palette
|
2021-10-11 06:44:18 +00:00
|
|
|
|
if bg == "light" then
|
2021-10-10 07:09:46 +00:00
|
|
|
|
palette = util.palette_extend({
|
|
|
|
|
|
bg = hsluv "#fbf1c7",
|
|
|
|
|
|
fg = hsluv "#3c3836",
|
|
|
|
|
|
rose = hsluv "#9d0006",
|
|
|
|
|
|
leaf = hsluv "#79740e",
|
|
|
|
|
|
wood = hsluv "#b57614",
|
|
|
|
|
|
water = hsluv "#076678",
|
|
|
|
|
|
blossom = hsluv "#8f3f71",
|
|
|
|
|
|
sky = hsluv "#427b58",
|
2021-10-20 22:35:35 +00:00
|
|
|
|
}, bg)
|
2021-09-22 10:22:33 +00:00
|
|
|
|
else
|
2021-10-10 07:09:46 +00:00
|
|
|
|
palette = util.palette_extend({
|
|
|
|
|
|
bg = hsluv "#282828",
|
|
|
|
|
|
fg = hsluv "#ebdbb2",
|
|
|
|
|
|
rose = hsluv "#fb4934",
|
|
|
|
|
|
leaf = hsluv "#b8bb26",
|
|
|
|
|
|
wood = hsluv "#fabd2f",
|
|
|
|
|
|
water = hsluv "#83a598",
|
|
|
|
|
|
blossom = hsluv "#d3869b",
|
|
|
|
|
|
sky = hsluv "#83c07c",
|
2021-10-20 22:35:35 +00:00
|
|
|
|
}, bg)
|
2021-09-22 10:22:33 +00:00
|
|
|
|
end
|
|
|
|
|
|
|
2021-10-11 05:57:15 +00:00
|
|
|
|
-- Generate the lush specs using the generator util
|
2021-10-11 06:44:18 +00:00
|
|
|
|
local generator = require "zenbones.specs"
|
2021-10-20 22:35:35 +00:00
|
|
|
|
local base_specs = generator.generate(palette, bg, generator.get_global_config(colors_name, bg))
|
2021-09-22 10:22:33 +00:00
|
|
|
|
|
2021-10-11 05:57:15 +00:00
|
|
|
|
-- Optionally extend specs using Lush
|
2021-10-10 07:09:46 +00:00
|
|
|
|
local specs = lush.extends({ base_specs }).with(function()
|
2021-09-22 10:22:33 +00:00
|
|
|
|
return {
|
2021-10-10 07:09:46 +00:00
|
|
|
|
Statement { base_specs.Statement, fg = palette.rose },
|
|
|
|
|
|
Special { fg = palette.water },
|
|
|
|
|
|
Type { fg = palette.sky, gui = "italic" },
|
2021-09-22 10:22:33 +00:00
|
|
|
|
}
|
|
|
|
|
|
end)
|
|
|
|
|
|
|
2021-10-11 05:57:15 +00:00
|
|
|
|
-- Pass the specs to lush to apply
|
2021-09-22 10:22:33 +00:00
|
|
|
|
lush(specs)
|
2021-10-10 07:09:46 +00:00
|
|
|
|
|
2021-10-11 05:57:15 +00:00
|
|
|
|
-- Optionally set term colors
|
2021-10-10 07:09:46 +00:00
|
|
|
|
require("zenbones.term").apply_colors(palette)
|
2021-09-22 10:22:33 +00:00
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
|
|
And there you have it. Just call `colorscheme gruvbones` to use your new
|
|
|
|
|
|
colorscheme. It respects `&background` and other configurations too.
|
|
|
|
|
|
|
2021-08-27 21:02:03 +00:00
|
|
|
|
Generated by panvimdoc <https://github.com/kdheepak/panvimdoc>
|
2021-08-27 02:01:48 +00:00
|
|
|
|
|
|
|
|
|
|
vim:tw=78:ts=8:noet:ft=help:norl:
|