/onenord.nvim

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

Primary LanguageLuaMIT LicenseMIT

🏔️ 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
  styles = {
    comments = "NONE", -- Style that is applied to comments: see `highlight-args` for options
    strings = "NONE", -- Style that is applied to strings: see `highlight-args` for options
    keywords = "NONE", -- Style that is applied to keywords: see `highlight-args` for options
    functions = "NONE", -- Style that is applied to functions: see `highlight-args` for options
    variables = "NONE", -- Style that is applied to variables: see `highlight-args` for options
    diagnostics = "underline", -- Style that is applied to diagnostics: see `highlight-args` for options
  },
  disable = {
    background = false, -- Disable setting the background color
    cursorline = false, -- Disable the cursorline
    eob_lines = true, -- Hide the end-of-buffer lines
  },
  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!