mcchrish / zenbones.nvim Goto Github PK
View Code? Open in Web Editor NEW🪨 A collection of contrast-based Vim/Neovim colorschemes
License: MIT License
🪨 A collection of contrast-based Vim/Neovim colorschemes
License: MIT License
Hi. I really like this colorscheme, except for one caveat, all lualine (etc.) variants of dark colorschemes are too bright, specially when picking the stark flavor. They're nice as-is too, but I also wished for darker variants that would blend a bit better with dark background, specially stark ones. Maybe it's a good idea to tone it down when using stark?
example of theme config
{
"background": "#000000",
"black": "#000000",
"blue": "#000080",
"brightBlack": "#808080",
"brightBlue": "#0000FF",
"brightCyan": "#00FFFF",
"brightGreen": "#00FF00",
"brightPurple": "#FF00FF",
"brightRed": "#FF0000",
"brightWhite": "#FFFFFF",
"brightYellow": "#FFFF00",
"cursorColor": "#FFFFFF",
"cyan": "#008080",
"foreground": "#C0C0C0",
"green": "#008000",
"name": "Vintage",
"purple": "#800080",
"red": "#800000",
"selectionBackground": "#FFFFFF",
"white": "#C0C0C0",
"yellow": "#808000"
}
Hey, I just updated zenbones and I've noticed that when neovim starts.
I can see the dark variant of the theme for a short time. It's much more visible when I open previously saved session with some bigger files (which probably causes neovim to do more work while initializing the plugins).
I'm using zplug with the following basic setup:
...
Plug 'mcchrish/zenbones.nvim'
Plug 'rktjmp/lush.nvim'
...
let g:zenbones_solid_vert_split=v:true
let g:zenbones_dim_noncurrent_window=v:false
colorscheme zenbones
Waiting: rktjmp/shipwright.nvim#5
Thanks for zenbones!
One thing I've noticed is that when using TS/JS files, the entirety of the contents of template literal strings are in italics which makes it a little difficult to read at times:
For comparison here is the same thing in nightfox
I wonder if this is an intentional choice or if there is a way of of doing something different in named template literals, where the content is often HTML templates as strings?
Hey,
first of all - thanks a lot for the effort building this great color theme, i really like the idea and of course the looks.
I stumbled upon an issue with cursor colors when using one of the following 'dark' themes
If the cursor is on a parenthesis or bracket and matchparen is active, the the cursor position is barely noticeable. This in my opinion is confusing and misleeading. I would asume that the cursor background stayes the same (like in the light mode theme).
cursor is noticeable (has the same bg-color)
matching cursor is highlighted
cursor is not nodiceable
matching cursor is highlighted
Not now but maybe in the future.
Hello, thanks for the great scheme.
I've noticed you recently added Zenflesh variant and also the ability to enable/disable italics for comments.
Would you consider to do the same for TabLine?
zenbones.nvim/lua/zenbones/init.lua
Line 95 in 4cd223c
I'm a bit confused about the difference between the variants, is zenbones
the same as zenwritten
?
First of all — thanks for making zenbones. It might made to switch a minimal scheme.
I, for the world, can't understand why Fish needs a separate set of color variables and can't re-use the colors a terminal emulator (like Kitty) provides. You seem to have a good understanding of it. Could you give explanation of why we need separate color variables — one for the terminal and one another for the shell? And also, is there an easy way to generate colorscheme for Fish shell?
If I open my init.lua file and reload it with source $MYVIMRC
I get the following warning:
Error detected while processing /var/home/cerqueira/.var/app/io.neovim.nvim/config/nvim/init.lua:
E5113: Error while calling lua chunk: ...e/cerqueira/.var/app/io.neovim.nvim/config/nvim/init.lua:25: Vim(lua):E5108: Error executing lua .../data
/nvim/site/pack/packer/start/lush.nvim/lua/lush.lua:64: Vim:zenbones_dim_noncurrent_window is replaced by zenbones_darken_noncurrent_window
Press ENTER or type command to continue
Don't know if it it has to do with lush or with this theme. But here is my config related to zenbones:
use {
'mcchrish/zenbones.nvim',
requires = {'rktjmp/lush.nvim'},
config = function()
vim.cmd([[
let g:zenbones_lightness = 'bright'
let g:zenflesh_darkness = 'stark'
let g:zenbones_solid_vert_split = 1
let g:zenflesh_solid_vert_split = 1
let g:zenbones_dim_noncurrent_window = 1
let g:zenflesh_lighten_noncurrent_window = 1
let g:zenbones_italic_comments = 1
let g:zenflesh_italic_comments = 1
]])
end
}
Works by just changing:
zenbones.nvim/lua/zenbones/colors.lua
Lines 5 to 6 in 6668814
To:
sand = hsluv("#e7eee8"),
stone = hsluv("#202e18"),
The title says it all. It doesn't look consistent if everything has a transparent background except the folds.
Would be a nice extra to have a consistent appearance 😏
Great set of colorschemes! I'm having trouble disabling italic_comments
with the config options shown in the documentation. What am I doing wrong? I've tried both within the vim.cmd
block and as lua
.
Thank you!
vim.cmd [[
try
set background=light
...
colorscheme zenbones
catch /^Vim\%((\a\+)\)\=:E185/
colorscheme default
set background=dark
endtry
" let g:zenbones = {
" italic_comments = v:false
" }
" let g:zenbones_italic_comments = v:false
]]
vim.g.zenbones = { italic_comments = false }
Reading this issue here: gbprod/tree-sitter-gitcommit#6 leads me to believe there's some diff highlights we have to cover maybe? I'm still really bad at debugging TreeSitter syntax highlighting.
My config: https://github.com/evantravers/dotfiles/blob/master/nvim/.config/nvim/init.lua, currently obsessively :TSInstall all
so including whichever diff
and gitcommit
are defaulted.
Hey there, with recently added support for semantic tokens I am wondering whether you would be against supporting it by default in zenbones. I am not sure how to solve it without making it too colourful but perhaps some faint backgrounds?
What is your opinion on the subject?
Thanks.
I use the Vim 8.2 native pack path, and have cloned this repo to ~./vim/pack/git/start/zenbones.nvim directory
. The problem is that because of the runtime path load order rules, ~/.vim/pack/git/start/zenbones.nvim/colors/zenbones.vim
is loaded before the ~/.vim/pack/git/start/zenbones.nvim/autoload/*
files. So when starting up Vim I get the error that zenbones#setup_colorscheme
is not defined (because at the time that colors/zenbones.vim is loaded the autoload files have not sourced yet). I discovered this by viewing the load order or scripts using :script
. Can it be reworked so that a color file is not calling an autoload function?
Recent breaking change in neovim neovim/neovim#14090 (comment)
After latest changes, this weird thing started to happen:
:hi Normal
Normal xxx guifg=#724341 guibg=#FBF6F0 (using rosebones variant here)
:echo nvim_get_hl_by_name('Normal', v:true)
{}
:lua print(vim.inspect(vim.api.nvim_get_hl_by_name('Normal', true)))
{
[true] = 6
}
I have no idea why, maybe it's a nvim bug (I'm on 0.7.0). Throught this nvim_get_hl_by_name
, I'm used to pick zenbones' Normal
highlight foreground
value to set up colors for other stuff, but now I'm getting nil
even though hi Normal
shows it as non-nil
. Not much an idea what's going, but since I'm solely hitting this from zenbones, I'm reporting it here first for a help.
Hi, I am seeing some weird discoloration when using the zenbones theme. Moving my cursor around the discolored lines will occasionally cause them to disappear.
Using zsh, i3wm, urxvt. Here is a minimal repro config file:
require('packer').startup(function(use)
use { 'mcchrish/zenbones.nvim', requires = 'rktjmp/lush.nvim' } -- light theme
use { 'hoob3rt/lualine.nvim', requires = {'kyazdani42/nvim-web-devicons' } }
end)
lualine = require('lualine')
vim.o.termguicolors = 1
vim.cmd 'set background=light'
vim.g.zenbones_compat = 1
vim.cmd 'colorscheme zenbones'
lualine.setup {
options = {
theme = 'sonokai',
icons_enabled = true,
}
}
require('nvim-treesitter.configs').setup {
highlight = {
enable = true,
disable = {},
-- additional_vim_regex_highlighting = true,
},
indent = {
enable = true,
disable = { "yaml" },
},
ensure_installed = {
"vim",
"toml",
"json",
"json5",
"yaml",
"html",
"css",
"javascript",
"svelte",
"typescript",
"python",
"java",
}
}
demo quick config for zenbonse theme
const hintsCss =
"font-size: 10pt; font-family: SauceCodePro Nerd Font, Consolas, Menlo, monospace; border: 0px; color:#2c363c; background: initial; background-color: #f0edec;";
Hints.style(hintsCss);
Hints.style(hintsCss, "text");
settings.theme = `
.sk_theme {
font-family: SauceCodePro Nerd Font, Consolas, Menlo, monospace;
font-size: 10pt;
background: #f0edec;
color: #2c363c;
}
.sk_theme tbody {
color: #f0edec;
}
.sk_theme input {
color: #2c363c;
}
.sk_theme .url {
color: #1d5573;
}
.sk_theme .annotation {
color: #2c363c;
}
.sk_theme .omnibar_highlight {
color: #88507d;
}
.sk_theme #sk_omnibarSearchResult ul li:nth-child(odd) {
background: #f0edec;
}
.sk_theme #sk_omnibarSearchResult ul li.focused {
background: #cbd9e3;
}
#sk_status,
#sk_find {
font-size: 10pt;
}
`;
I noticed the version tags are a mixture of full semver major.minor.patch
and just major.minor
or major
. Not sure if you're actually doing "Semantic Versioning" or just "Versioning", but per the semver spec you're supposed to include all 3 parts for it to be valid.
The kitty terminal has a command to change the colors/theme. Any kitty colorscheme located in the kitty-theme repo will automatically be available via kitty +kitten themes
. It'd be great if the kitty configs could be added to the repo so zenbones users on kitty can quickly and easily change themes and have it managed the way kitty prefers.
I could do this, but I'd wouldn't want to unless you were okay with it since it's your work and such.
Thanks for the amazing color scheme!
I believe the following colors, for zenbones/light
, are swapped on iTerm2 color scheme (extras/iterm/zenbones.itermcolors
):
ansi 0 (black) <=> ansi 7 (white)
ansi 8 (bright black) <=> ansi 15 (bright white)
I briefly looked at lua/zenbones/shipwright/runners/iterm.lua
, and that looks okay. The zenbones/dark
(extras/iterm/zenbones_dark.itermcolors
) seems to be correct as well.
Some cli tools might not work as intended if one "fixes" the colors, but that is because they hardcode white/black where they should use background/foreground instead, no? Was that the reason why this was done in the first place? I actually have 2 examples of this: lazygit
does not work as intended with the "fixed" colors, while tig
works better with the "fixed" colors.
Again, thanks for the color scheme.
Hello. Thanks for these themes. I'm using zenbones and have a few questions.
As seen in the image, the autocomplete list provided by nvim-cmp is showing the selected item (yes, the first item really is selected) using a darker highlight. It's terribly difficult to distinguish and I'm wondering how I could change that the background to any of the zenbones native colors (blue, green, pink, etc)?
Why are the background colors so different between the autocomplete list and the documentation window?
Thanks in advance for any assistance.
I have a light themed terminal, and zenwritten automatically uses the light theme, as expected.
However, whenever there's an error upon starting nvim, the error screen uses the dark theme:
This can be worked around by adding set background=light
to my init.vim, but I'd prefer not setting that (so that I don't need to update it every time I change my terminal theme).
I got the following error on startup
NnnVertSplit could not be applied, nvim returned an error: "...share/nvim/site/pack/packer/start/lush.nvim/lua/lush.lua:55: 'bg' is
not a valid color", (attributes given: {
fg = "bg"
})
NvimTreeVertSplit could not be applied, nvim returned an error: "...share/nvim/site/pack/packer/start/lush.nvim/lua/lush.lua:55: 'bg
' is not a valid color", (attributes given: {
fg = "bg"
})
I guess these two lines are probably the culprit? You may also want to look at light.lua
due to the same issue.
https://github.com/mcchrish/zenbones.nvim/blob/main/lua/zenbones/specs/dark.lua#L366
https://github.com/mcchrish/zenbones.nvim/blob/main/lua/zenbones/specs/dark.lua#L385
I have noticed today that the startup of neovim is a bit slow. it takes a second or two.
disabled zenbones and lush and the startup time went back to fast.
I'm not sure what's the problem here.
I have tried to disable lush and just use g:theme_compat = 1
at the top of my init config
but still slow
any ideas on how I can troubleshot this or fix it? thanks.
Note: I think lush is the problem because when I didn't set compat to 1, nvim loaded fast with no delays and gave me the error that lush can't be found or isn't loaded!
e.g. extras/kitty/zenbones_bright.conf
Maybe after #11
How do I set stark
?
I've had the following config for a year to highlight strings as blue, but it's stopped working recently without any changes other than updating the plugin.
local lush = require "lush"
local base = require "zenbones"
local water = lush.hsluv(236, 64, 61)
-- Create some specs
local specs = lush.parse(function()
return {
String { base.String, fg = water },
}
end)
-- Apply specs using lush tool-chain
lush.apply(lush.compile(specs))
The highlight works if I replace String
with Comment
, but something specific to String has stopped working.
👋 I really like your light vim themes!
Is there a chance we could get the alacritty and tmux files generated for rosebones and forestbones?
I can probably try to create PR tonight 🙂
I have got wezterm to respond to the os theme but that doesn't seem to apply to neovim with LazyVim and Neobones theme.
Is there a way to get vim.o.background
to sync with wezterms bg?
Might use hex_to_rgb
to help get the values by / 255
. Not sure if the floating point precision difference will be a problem.
I'm using LazyVim and I've been trying to get Lush working for a while now. Any tips for how to disable the italics for numbers and strings? Trying to follow this guide: https://github.com/mcchrish/zenbones.nvim/blob/v3.1.0/doc/zenbones.md#extendoverride-highlights
-- lua/plugins/colorscheme.lua
return {
{
"mcchrish/zenbones.nvim",
dependencies = { "rktjmp/lush.nvim" },
init = function()
vim.g.neobones_darkness = "stark"
vim.g.neobones_lighten_cursor_line = 8
vim.g.neobones_lighten_comments = 40
vim.g.neobones_italic_comments = false
vim.api.nvim_create_autocmd({ "ColorScheme" }, {
pattern = "neobones",
callback = function()
local lush = require("lush")
local base = require("neobones")
local testNum = 12344567890
local specs = lush.parse(function()
return {
Constant = { base.Constant, gui = "NONE" },
Number = { base.Number, gui = "NONE" },
}
end)
lush.apply(lush.compile(specs))
end,
})
vim.cmd("colorscheme neobones")
end,
},
{
"LazyVim/LazyVim",
opts = {
colorscheme = "neobones",
},
},
}
I'll try poking at this sometime soon and submit a PR… but according to the author's reddit post we need to implement highlights for:
TSTitle
TSLiteral
TSEmphasis
TSStrong
TSURI
TSTextReference
TSPunctSpecial
TSStringEscape
I have fallen hard for this color scheme… and really enjoy the flexibility, extras, and mindset.
I’m missing treesitter a touch. I’m going to give a stab at extending it or making a pull request, but I thought I’d throw it out there while I work on it.
The forestbones
[light] colorscheme is my preferred choice! However, I can't find it under extras/
, which means I can make my terminal use the same colors.
If I find some time, I'll take a crack at writing one for kitty
.
I use nerd font Hack which support bold, italic and both. But I dont see any font differences like the screenshot demo in the readme?
I really love the zenbones colors.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.