this post was submitted on 24 May 2024
15 points (82.6% liked)

Neovim

2161 readers
3 users here now

founded 1 year ago
MODERATORS
 

Update: Based on the discussion here and in other places I added the following (well, technically I did something different in my colorscheme, but in the end it translates to that)

vim.api.nvim_set_hl(0, 'Normal', {})

This reverts the weird text and background colors to the previous behavior of ... not setting them.


With update 0.10 Neovim behavior changed regarding text color and background color.

I use a color theme that does not set those and previously this worked perfectly fine. Neovim simply used the font color defined in the terminal and had a transparent background.

Now the background is #14161b and the font color is #e0e2ea. Neither of the colors is configured ANYWHERE in my whole setup. Neither in the colorscheme, nor in my terminal configuration, nor in my Neovim configuration.

Is there a sane way to revert this to the old behavior? (i.e. use the font color configured in the terminal’s configuration and use transparent background.)

you are viewing a single comment's thread
view the rest of the comments
[–] wwwgem@lemmy.ml 4 points 5 months ago (1 children)

This is my neovim visual config:

    -- General colors
    vim.api.nvim_set_hl( 0, "Normal", { bg = "none" } )
    vim.api.nvim_set_hl( 0, "NormalFloat", { bg = "none" } )
    vim.api.nvim_set_hl( 0, "NormalNC", { bg = "none" } )
    vim.api.nvim_set_hl( 0, "LineNr", { bg = "none" } )
    vim.api.nvim_set_hl( 0, "SignColumn", { bg = "none" } )
    vim.api.nvim_set_hl( 0, "Folded", { bg = "#4b4b4b" } )
    vim.api.nvim_set_hl( 0, "FoldColumn", { bg = "none" } )
    vim.api.nvim_set_hl( 0, "Visual", { fg = "#000000", bg = "#de935f" } )
    vim.api.nvim_set_hl( 0, "NotifyBackground", { bg = "#000000" } )```

    -- Spell checking 
    vim.api.nvim_set_hl( 0, "SpellLocal", { fg = default } )
    vim.api.nvim_set_hl( 0, "SpellRare", { fg = default } )
    vim.api.nvim_set_hl( 0, "SpellCap", { fg = "#de935f", italic=true } )
    vim.api.nvim_set_hl( 0, "SpellBad", { fg = "#ff0000", italic=true } )
   
   -- Markdown
   vim.api.nvim_set_hl( 0, "htmlBold", { bold=true } )
   vim.api.nvim_set_hl( 0, "htmlItalic", { italic=true } )
   vim.api.nvim_set_hl( 0, "htmlStrike", { fg = "#ff0000", strikethrough=true } )

vim.api.nvim_set_hl( 0, "Normal", { bg = "none" } ) is probably what would work for you.

[–] Dirk@lemmy.ml 1 points 5 months ago (1 children)

So I need to disable all the non-treesitter definitions first?

Do you know if there is a way to completely disable the built-in styling?

[–] wwwgem@lemmy.ml 1 points 5 months ago (1 children)

I have treesitter as well and didn't do anything specific before adding these lines to my config. If you're looking to change "everything" without tweaking each highlight parameter individually you may be interested in this plugin.

[–] Dirk@lemmy.ml 1 points 5 months ago (6 children)

I don’t want to make Neovim transparent, though. I have an own colorschme and just don’t want the default colorscheme to be applied.

[–] wwwgem@lemmy.ml 1 points 5 months ago (1 children)

Ok. If I have interpreted your post correctly you want to not use the default colors for values not defined in your theme (i.e. defaulting to transparency).

I see two options to combine to your theme:

  • replacing any default colors using the command above
  • using the transparency plugin so any colors not defined in your theme will be transparent
[–] Dirk@lemmy.ml 1 points 5 months ago

Yeah … so stupid. Why do they force that? If it would take the already defined foreground and background colors of the terminal, fine … but those colors are just made-up nonsense.

Your idea was great, though. I quickfixed that in my colorscheme by adding this line

vim.api.nvim_set_hl(0, 'Normal', {})

And so far this seems to resolve the problematic colors being set.