onenord.nvim icon indicating copy to clipboard operation
onenord.nvim copied to clipboard

🏔️ A Neovim theme that combines the Nord and Atom One Dark color palettes for a more vibrant programming experience.

🏔️ 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.5.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
    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 = {
    TSConstructor = { fg = colors.dark_blue },
  },
  custom_colors = {
    red = "#ffffff",
  },
})

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

Extras

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

An example of the Kitty onenord theme

Credits

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