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!
- Treesitter
- Treesitter Context
- LSP Diagnostics
- Trouble
- Git Signs
- Git Gutter
- Neogit
- Telescope
- Cmp
- NvimTree
- NeoTree
- WhichKey
- Indent Blankline
- Dashboard
- BufferLine
- Lualine
- Notify
- Lightspeed
- Sneak
- Hop
- Fern
- Barbar
- LSP Saga
- Dap
- Navic
- nvim-ts-rainbow
- Neovim >= 0.8.0
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'
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
}
}
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, style = 'bold' },
},
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, style = 'bold' }, -- 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()
!
Extra color configs for Kitty, Alacritty, iTerm, Warp, and Xresources can be found in extras. To use them, refer to their respective documentation.
There is also a version for JetBrains IDEs if you are interested!
I was highly inspired by these other awesome themes, check them out!