rmehri01/onenord.nvim

github github
colorschemetreesitter-colorschemes
stars 468
issues 0
subscribers 4
forks 40
CREATED

2021-10-17

UPDATED

21 days ago


🏔️ onenord.nvim

Screenshot of the onenord theme

Screenshot of the onenordlight theme

Features

OneNord is a Neovim theme written in Lua that combines the Nord and Atom One Dark color palettes. More specifically, it seeks to add more vibrance to the Nord theme and provide a great programming experience by leveraging Treesitter!

Plugin Support

Requirements

  • Neovim >= 0.8.0

Installation

Install via your favourite package manager:

" If you are using Vim Plug
Plug 'rmehri01/onenord.nvim', { 'branch': 'main' }
-- If you are using Packer
use 'rmehri01/onenord.nvim'

Usage

For the defaults, simply enable the colorscheme:

" Vim Script
colorscheme onenord
-- Lua
require('onenord').setup()

To enable the onenord theme for Lualine, specify it in your lualine settings:

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

Configuration

The configuration of different options is done through a setup function which will handle setting the colors, so there's no need to set colorscheme yourself! This is an example of the function with the default values:

require('onenord').setup({
  theme = nil, -- "dark" or "light". Alternatively, remove the option and set vim.o.background instead
  borders = true, -- Split window borders
  fade_nc = false, -- Fade non-current windows, making them more distinguishable
  -- Style that is applied to various groups: see `highlight-args` for options
  styles = {
    comments = "NONE",
    strings = "NONE",
    keywords = "NONE",
    functions = "NONE",
    variables = "NONE",
    diagnostics = "underline",
  },
  disable = {
    background = false, -- Disable setting the background color
    float_background = false, -- Disable setting the background color for floating windows
    cursorline = false, -- Disable the cursorline
    eob_lines = true, -- Hide the end-of-buffer lines
  },
  -- Inverse highlight for different groups
  inverse = {
    match_paren = false,
  },
  custom_highlights = {}, -- Overwrite default highlight groups
  custom_colors = {}, -- Overwrite default colors
})

Here is an example of overwriting the default highlight groups and colors:

local colors = require("onenord.colors").load()

require("onenord").setup({
  custom_highlights = {
    ["@constructor"] = { fg = colors.dark_blue },
  },
  custom_colors = {
    red = "#ffffff",
  },
})

If you use the light and dark keys, the override will be specific to those themes, otherwise they apply to both:

local colors = require("onenord.colors").load()

require("onenord").setup({
  custom_highlights = {
    light = {
      ["@constructor"] = { fg = colors.dark_blue }, -- only applies in light theme
    },
  },
  custom_colors = {
    blue = "#0000ff", -- applies in both themes
    light = {
      red = "#000000", -- only applies in light theme
    },
    dark = {
      red = "#ffffff", -- only applies in dark theme
    },
  },
})

You can also use the OneNord color palette for other plugins using local colors = require("onenord.colors").load()!

Integrations

LSP Saga

For custom LSP kind colors:

require("lspsaga").setup({
  ui = {
    kind = require("onenord.integrations.lspsaga").custom_kind(),
  },
})

Extras

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

An example of the Kitty onenord theme

There is also a version for JetBrains IDEs if you are interested!

Credits

I was highly inspired by these other awesome themes, check them out!