/NeoSolarized.nvim

NeoSolarized colorscheme for NeoVim with full transparency

Primary LanguageLuaApache License 2.0Apache-2.0

🖌 NeoSolarized

A dark and light Neovim theme written in Lua ported from NeoSolarized with better syntax highlighting. Includes extra themes for Kitty, Alacritty, Wezterm, Konsole and Windows Terminal.

Dark (Dark Theme with Transparency)

Screenshot_20230430_084417

Dark

Screenshot_20230430_084549

Light

Screenshot_20230430_084640

🔥 Features

  • supports the latest Neovim 5.0 features like TreeSitter and LSP
  • better syntax highlighting
  • color configs for Kitty, Alacritty, Konsole and Wezterm
  • lualine theme

🧨 Plugin Support

⚡️ Requirements

  • Neovim >= 0.6.0

💡 Installation

Install the theme with your preferred package manager:

Plug 'Tsuzat/NeoSolarized.nvim', { 'branch': 'master' }
use ('Tsuzat/NeoSolarized.nvim')

or clone the project and install locally using packer.

First clone the project in you machine.

$ git clone https://github.com/Tsuzat/NeoSolarized.nvim

Install using packer

use ('path-to-NeoSolarized')
{
  "Tsuzat/NeoSolarized.nvim",
    lazy = false, -- make sure we load this during startup if it is your main colorscheme
    priority = 1000, -- make sure to load this before all the other start plugins
    config = function()
      vim.cmd [[ colorscheme NeoSolarized ]]
    end
}

✨ Usage

Enable the colorscheme:

" Vim Script
colorscheme NeoSolarized
-- Lua
vim.cmd[[colorscheme NeoSolarized]]

To use the NeoSolarized theme for Lualine, simply specify it in your lualine settings:

require('lualine').setup {
  options = {
    theme = 'NeoSolarized'
    -- ... your lualine config
  }
}

⚙️ Configuration

⚠️ configuration needs to be set BEFORE loading the color scheme with colorscheme NeoSolarized

The theme comes in two styles, light and dark.

NeoSolarized will use the default options, unless you call setup. Here an example to set things up using default options.

local ok_status, NeoSolarized = pcall(require, "NeoSolarized")

if not ok_status then
  return
end

-- Default Setting for NeoSolarized

NeoSolarized.setup {
  style = "dark", -- "dark" or "light"
  transparent = true, -- true/false; Enable this to disable setting the background color
  terminal_colors = true, -- Configure the colors used when opening a `:terminal` in Neovim
  enable_italics = true, -- Italics for different hightlight groups (eg. Statement, Condition, Comment, Include, etc.)
  styles = {
    -- Style to be applied to different syntax groups
    comments = { italic = true },
    keywords = { italic = true },
    functions = { bold = true },
    variables = {},
    string = { italic = true },
    underline = true, -- true/false; for global underline
    undercurl = true, -- true/false; for global undercurl
  },
  -- Add specific hightlight groups
  on_highlights = function(highlights, colors) 
    -- highlights.Include.fg = colors.red -- Using `red` foreground for Includes
  end, 
}
-- Set colorscheme to NeoSolarized
vim.cmd [[
   try
        colorscheme NeoSolarized
    catch /^Vim\%((\a\+)\)\=:E18o
        colorscheme default
        set background=dark
    endtry
]]

NOTE that you can not use transparency with light mode.

❣️ Extras

Extra color configs for Kitty, Alacritty, Wezterm and Konsole can be found in extras. To use them, refer to their respective documentation.

💥 Contributing

Pull requests are welcome. One can add plugin and language specific highlight groups.

🏅 Inspiration

  • Plugin Structure is heavily inspired from Tokyonight
  • Classic color palettes from NeoSolarized
  • Love for Full Transparent NeoVim themes.