Atom's iconic One Dark theme for Neovim, written in Lua
- Supports the latest Neovim 0.5 features like TreeSitter and LSP
- Minimal inactive StatusLine
- Vim terminal colors
- Darker background for sidebar-like windows
- Color configs for Kitty and Alacritty
- Beautiful lualine theme
- Neovim >= 0.5.0
Install the theme with your preferred package manager:
Plug 'ful1e5/onedark.nvim'
use 'ful1e5/onedark.nvim'
Enable the colorscheme:
" Vim Script
colorscheme onedark
-- Lua
require('onedark').setup()
Option | Default | Description |
---|---|---|
colors | {} |
You can override specific color groups to use other groups or a hex color. |
comment_style | italic |
Highlight style for comments (check :help highlight-args for options) |
dark_float | false |
Float windows like the lsp diagnostics windows get a darker background. |
dark_sidebar | true |
Sidebar like windows like NvimTree get a darker background. |
dev | false |
Developer Mode. |
function_style | NONE |
Highlight style for functions (check :help highlight-args for options) |
hide_end_of_buffer | true |
Enabling this option, will hide filler lines (~) after the end of the buffer. |
hide_inactive_statusline | true |
Enabling this option, will hide inactive statuslines and replace them with a thin border instead. Should work with the standard StatusLine. |
highlight_linenumber | false |
Enabling this option, will enable dark color to LineNr , SignColumn and CursorLineNr highlights.(also support gitsigns plugin) |
keyword_style | italic |
Highlight style for keywords (check :help highlight-args for options) |
lualine_bold | false |
When true , section headers in the lualine theme will be bold. |
msg_area_style | NONE |
Highlight style for messages and cmdline (check :help highlight-args for options) |
overrides | function |
Override specific highlight groups. The function accpet colors as argument. You can also add a non-exists highlight by enabling the dev mode. |
sidebars | {} |
Set a darker background on sidebar-like windows. For example: {"qf", "vista_kind", "terminal", "packer"} |
transparent | false |
Enable this to disable setting the background color. |
transparent_sidebar | false |
Sidebar like windows like NvimTree get a transparent background. |
variable_style | NONE |
Highlight style for variables and identifiers (check :help highlight-args for options) |
" Example config in VimScript
" configuration needs to be set BEFORE loading the color scheme with `colorscheme` command
let g:onedark_function_style = "italic"
let g:onedark_sidebars = ["qf", "vista_kind", "terminal", "packer"]
" Change the "hint" color to the "orange0" color, and make the "error" color bright red
let g:onedark_colors = {
\ 'hint': 'orange0',
\ 'error': '#ff0000'
\ }
" Load the colorscheme
colorscheme onedark
-- Example config in Lua
require("onedark").setup({
function_style = "italic",
sidebars = {"qf", "vista_kind", "terminal", "packer"},
-- Change the "hint" color to the "orange0" color, and make the "error" color bright red
colors = {hint = "orange0", error = "#ff0000"},
-- Overwrite the highlight groups
overrides = function(c)
return {
htmlTag = {fg = c.red0, bg = "#282c34", sp = c.hint, style = "underline"},
DiagnosticHint = {link = "LspDiagnosticsDefaultHint"},
-- this will remove the highlight groups
TSField = {},
}
end
})
To enable the onedark
theme for Lualine
, simply specify it in your lualine settings:
require('lualine').setup {
options = {
theme = 'onedark-nvim',
-- ... your lualine config
}
}
To generate the configs
make terminal
or:luafile lua/onedark/terminal/init.lua
Extra color configs for kitty, and Alacritty can be found in terminal directory. To use them, refer to their respective documentation.
- kitty - ./terminal/kitty
- Alacritty - ./terminal/alacritty
To have undercurls show up and in color, add the following to your Tmux config file:
# Undercurl
set -g default-terminal "${TERM}"
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # undercurl support
set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' # underscore colours - needs tmux-3.0
- Builtin LSP diagnostics
- TimUntersberger/neogit
- airblade/vim-gitgutter
- akinsho/nvim-bufferline.lua
- folke/lsp-trouble.nvim
- ggandor/lightspeed.nvim
- glepnir/dashboard-nvim
- glepnir/lspsaga.nvim
- hrsh7th/nvim-cmp
- kyazdani42/nvim-tree.lua
- lambdalisue/glyph-palette.vim
- lewis6991/gitsigns.nvim
- liuchengxu/vim-which-key
- lukas-reineke/indent-blankline.nvim
- neoclide/coc.nvim
- nvim-lualine/lualine.nvim
- nvim-telescope/telescope.nvim
- nvim-treesitter/nvim-treesitter
- phaazon/hop.nvim
- projekt0n/circles.nvim
- rcarriga/nvim-notify
- romgrk/barbar.nvim
- Font: JetBrains Mono
- Terminal: kitty
- dotfiles: ful1e5/dotfiles
" VimScript
let g:onedark_comment_style = "NONE"
let g:onedark_keyword_style = "NONE"
let g:onedark_function_style = "NONE"
let g:onedark_variable_style = "NONE"
-- Lua
require("onedark").setup({
comment_style = "NONE",
keyword_style = "NONE",
function_style = "NONE",
variable_style = "NONE"
-- ... your onedark config
})
" VimScript
let g:onedark_comment_style = "italic"
let g:onedark_keyword_style = "italic"
let g:onedark_function_style = "italic"
let g:onedark_variable_style = "italic"
-- Lua
require("onedark").setup({
comment_style = "italic",
keyword_style = "italic",
function_style = "italic",
variable_style = "italic"
-- ... your onedark config
})
" VimScript
let g:onedark_hide_inactive_statusline = 1
let g:onedark_dark_sidebar = 0
let g:onedark_dark_float = 0
-- Lua
require("onedark").setup({
hide_inactive_statusline = true,
dark_sidebar = false,
dark_float = false
-- ... your onedark config
})
" VimScript
let g:onedark_highlight_linenumber = 1
-- Lua
require("onedark").setup({
highlight_linenumber = true
-- ... your onedark config
})