8.0 KiB
🏙 Tokyo Night
A dark and light Neovim theme written in Lua ported from the Visual Studio Code TokyoNight theme. Includes extra themes for Kitty, Alacritty, iTerm and Fish.
Storm
Night
Day
✨ Features
- supports the latest Neovim 5.0 features like TreeSitter and LSP
- minimal inactive statusline
- vim terminal colors
- darker background for sidebar-like windows
- color configs for Kitty, Alacritty and Fish Shell
- lualine theme
Plugin Support
- TreeSitter
- LSP Diagnostics
- LSP Trouble
- LSP Saga
- Git Signs
- Git Gutter
- Telescope
- NvimTree
- WhichKey
- Indent Blankline
- Dashboard
- BufferLine
- Lualine
- Lightline
- Neogit
- vim-sneak
⚡️ Requirements
- Neovim >= 0.5.0
📦 Installation
Install the theme with your preferred package manager:
Plug 'folke/tokyonight.nvim'
use 'folke/tokyonight.nvim'
🚀 Usage
Enable the colorscheme:
" Vim Script
colorscheme tokyonight
-- Lua
vim.cmd[[colorscheme tokyonight]]
To enable the TokyoNight
theme for Lualine
, simply specify it in your lualine settings:
require('lualine').setup {
options = {
-- ... your lualine config
theme = 'tokyonight'
-- ... your lualine config
}
}
To enable the tokyonight
colorscheme for Lightline
:
" Vim Script
let g:lightline = {'colorscheme': 'tokyonight'}
⚙️ Configuration
❗️ configuration needs to be set BEFORE loading the color scheme with
colorscheme tokyonight
The theme comes in three styles, storm
, a darker variant night
and day
.
The day style will be used if:
vim.g.tokyonight_style == "day"
- or
vim.o.background == "light"
Option | Default | Description |
---|---|---|
tokyonight_style | "storm" |
The theme comes in three styles, storm , a darker variant night and day . |
tokyonight_terminal_colors | true |
Configure the colors used when opening a :terminal in Neovim |
tokyonight_italic_comments | true |
Make comments italic |
tokyonight_italic_keywords | true |
Make keywords italic |
tokyonight_italic_functions | false |
Make functions italic |
tokyonight_italic_variables | false |
Make variables and identifiers italic |
tokyonight_transparent | false |
Enable this to disable setting the background color |
tokyonight_hide_inactive_statusline | false |
Enabling this option, will hide inactive statuslines and replace them with a thin border instead. Should work with the standard StatusLine and LuaLine. |
tokyonight_sidebars | {} |
Set a darker background on sidebar-like windows. For example: ["qf", "vista_kind", "terminal", "packer"] |
tokyonight_dark_sidebar | true |
Sidebar like windows like NvimTree get a darker background |
tokyonight_dark_float | true |
Float windows like the lsp diagnostics windows get a darker background. |
tokyonight_colors | {} |
You can override specific color groups to use other groups or a hex color |
tokyonight_day_brightness | 0.3 |
Adjusts the brightness of the colors of the Day style. Number between 0 and 1, from dull to vibrant colors |
-- Example config in Lua
vim.g.tokyonight_style = "night"
vim.g.tokyonight_italic_functions = true
vim.g.tokyonight_sidebars = { "qf", "vista_kind", "terminal", "packer" }
-- Change the "hint" color to the "orange" color, and make the "error" color bright red
vim.g.tokyonight_colors = { hint = "orange", error = "#ff0000" }
-- Load the colorscheme
vim.cmd[[colorscheme tokyonight]]
" Example config in VimScript
let g:tokyonight_style = "night"
let g:tokyonight_italic_functions = 1
let g:tokyonight_sidebars = [ "qf", "vista_kind", "terminal", "packer" ]
" Load the colorscheme
colorscheme tokyonight
Making undercurls
work properly in Tmux
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
🍭 Extras
Extra color configs for Kitty, Alacritty, Fish, WezTerm and iTerm can be found in extras. To use them, refer to their respective documentation.
🔥 Contributing
Pull requests are welcome. For the extras
, we use a simple template system that can be used to generate themes for the different styles.
How to add a new extra template:
- create a file like
lua/tokyonight/extra/cool-app.lua
- add the name and output file extension to the
extras
table inlua/tokyonight/extra/init.lua
- in the root directory, run
$ lua lua/tokyonight/extra/init.lua
to generate / update extra themes - commit the newly created themes under
extra/