*nekonight.txt* For Neovim Last change: 2024 December 19 ============================================================================== Table of Contents *nekonight-table-of-contents* 1. Neko Night |nekonight-neko-night| - Features |nekonight-neko-night-features| - Requirements |nekonight-neko-night-requirements| - Installation |nekonight-neko-night-installation| - Usage |nekonight-neko-night-usage| - Configuration |nekonight-neko-night-configuration| - Overriding Colors & Highlight Groups|nekonight-neko-night-overriding-colors-&-highlight-groups| - Extras |nekonight-neko-night-extras| - Contributing |nekonight-neko-night-contributing| 2. Links |nekonight-links| ============================================================================== 1. Neko Night *nekonight-neko-night* A dark and light Neovim <https://github.com/neovim/neovim> theme written in Lua <https://www.lua.org> forked and ported from tokyo night <https://github.com/folke/tokyonight.nvim> theme. Includes |nekonight-extra| themes for Kitty <https://sw.kovidgoyal.net/kitty/conf.html>, Alacritty <https://github.com/alacritty/alacritty>, iTerm <https://iterm2.com/> and Fish <https://fishshell.com/docs/current/index.html>. MoonStormNightDay FEATURES *nekonight-neko-night-features* - Supports the latest Neovim <https://github.com/neovim/neovim> 0.9.0 <https://github.com/neovim/neovim/releases/tag/v0.9.0> features. - Terminal colors. - Supports all major plugins. - Provides NekoNight <https://github.com/BrunoCiccarino/nekonight> |nekonight-extras| for numerous other applications. Supported Plugins ~ ----------------------------------------------------------------------- Plugin Source ----------------------------------- ----------------------------------- aerial.nvim aerial ale ale alpha-nvim alpha barbar.nvim barbar blink.cmp blink bufferline.nvim bufferline nvim-cmp cmp codeium.nvim codeium copilot.lua copilot nvim-dap dap dashboard-nvim dashboard flash.nvim flash fzf-lua fzf vim-gitgutter gitgutter gitsigns.nvim gitsigns glyph-palette.vim glyph-palette grug-far.nvim grug-far headlines.nvim headlines hop.nvim hop vim-illuminate illuminate indent-blankline.nvim indent-blankline indentmini.nvim indentmini lazy.nvim lazy leap.nvim leap lspsaga.nvim lspsaga mini.animate mini_animate mini.clue mini_clue mini.completion mini_completion mini.cursorword mini_cursorword mini.deps mini_deps mini.diff mini_diff mini.files mini_files mini.hipatterns mini_hipatterns mini.icons mini_icons mini.indentscope mini_indentscope mini.jump mini_jump mini.map mini_map mini.notify mini_notify mini.operators mini_operators mini.pick mini_pick mini.starter mini_starter mini.statusline mini_statusline mini.surround mini_surround mini.tabline mini_tabline mini.test mini_test mini.trailspace mini_trailspace nvim-navic navic neo-tree.nvim neo-tree neogit neogit neotest neotest noice.nvim noice nvim-notify notify nvim-tree.lua nvim-tree octo.nvim octo rainbow-delimiters.nvim rainbow render-markdown.nvim render-markdown nvim-scrollbar scrollbar snacks.nvim snacks vim-sneak sneak supermaven-nvim supermaven telescope.nvim telescope nvim-treesitter-context treesitter-context trouble.nvim trouble vimwiki vimwiki which-key.nvim which-key yanky.nvim yanky ----------------------------------------------------------------------- Extras ~ ----------------------------------------------------------------------- Tool Extra ----------------------------------- ----------------------------------- Aerc extras/aerc Alacritty extras/alacritty Delta extras/delta (Better-)Discord extras/discord Dunst extras/dunst Fish extras/fish Fish Themes extras/fish_themes Foot extras/foot Fuzzel extras/fuzzel Fzf extras/fzf Ghostty extras/ghostty GitUI extras/gitui GNOME Terminal extras/gnome_terminal Helix extras/helix iTerm extras/iterm Kitty extras/kitty Lazygit extras/lazygit Lua Table for testing extras/lua Prism extras/prism process-compose extras/process_compose Slack extras/slack Spotify Player extras/spotify_player Sublime Text extras/sublime Terminator extras/terminator Termux extras/termux Tilix extras/tilix Tmux extras/tmux Vim extras/vim Vimium extras/vimium WezTerm extras/wezterm Windows Terminal extras/windows_terminal Xfce Terminal extras/xfceterm Xresources extras/xresources Yazi extras/yazi Zathura extras/zathura Zellij extras/zellij ----------------------------------------------------------------------- REQUIREMENTS *nekonight-neko-night-requirements* - Neovim <https://github.com/neovim/neovim> >= 0.8.0 <https://github.com/neovim/neovim/releases/tag/v0.8.0> INSTALLATION *nekonight-neko-night-installation* Install the theme with your preferred package manager, such as folke/lazy.nvim <https://github.com/folke/lazy.nvim> >lua { "BrunoCiccarino/nekonight", lazy = false, priority = 1000, opts = {}, } < USAGE *nekonight-neko-night-usage* >lua vim.cmd[[colorscheme nekonight]] < >vim colorscheme nekonight " There are also colorschemes for the different styles. colorscheme nekonight-night colorscheme nekonight-storm colorscheme nekonight-day colorscheme nekonight-moon < Some plugins need extra configuration to work with **nekonight**. Click here for more details ~ BARBECUE ~ >lua -- Lua require('barbecue').setup { -- ... your barbecue config theme = 'nekonight', -- ... your barbecue config } < LUALINE ~ >lua -- Lua require('lualine').setup { options = { -- ... your lualine config theme = 'nekonight' -- ... your lualine config } } < LIGHTLINE ~ >vim " Vim Script let g:lightline = {'colorscheme': 'nekonight'} < CONFIGURATION *nekonight-neko-night-configuration* [!IMPORTANT] Set the configuration **BEFORE** loading the color scheme with `colorscheme nekonight`. The theme offers four styles: |nekonight-storm|, |nekonight-moon|, |nekonight-night|, and |nekonight-day|. The |nekonight-day| style is used when `{ style = "day" }` is passed to `setup(options)` or when `vim.o.background = "light"`. nekonight <https://github.com/BrunoCiccarino/nekonight> uses the default options, unless `setup` is explicitly called. Default Options ~ >lua ---@class nekonight.Config ---@field on_colors fun(colors: ColorScheme) ---@field on_highlights fun(highlights: nekonight.Highlights, colors: ColorScheme) M.defaults = { style = "moon", -- The theme comes in three styles, `storm`, a darker variant `night` and `day` light_style = "day", -- The theme is used when the background is set to light transparent = false, -- Enable this to disable setting the background color terminal_colors = true, -- Configure the colors used when opening a `:terminal` in Neovim styles = { -- Style to be applied to different syntax groups -- Value is any valid attr-list value for `:help nvim_set_hl` comments = { italic = true }, keywords = { italic = true }, functions = {}, variables = {}, -- Background styles. Can be "dark", "transparent" or "normal" sidebars = "dark", -- style for sidebars, see below floats = "dark", -- style for floating windows }, day_brightness = 0.3, -- Adjusts the brightness of the colors of the **Day** style. Number between 0 and 1, from dull to vibrant colors dim_inactive = false, -- dims inactive windows lualine_bold = false, -- When `true`, section headers in the lualine theme will be bold --- You can override specific color groups to use other groups or a hex color --- function will be called with a ColorScheme table ---@param colors ColorScheme on_colors = function(colors) end, --- You can override specific highlights to use other groups or a hex color --- function will be called with a Highlights and ColorScheme table ---@param highlights nekonight.Highlights ---@param colors ColorScheme on_highlights = function(highlights, colors) end, cache = true, -- When set to true, the theme will be cached for better performance ---@type table<string, boolean|{enabled:boolean}> plugins = { -- enable all plugins when not using lazy.nvim -- set to false to manually enable/disable plugins all = package.loaded.lazy == nil, -- uses your plugin manager to automatically enable needed plugins -- currently only lazy.nvim is supported auto = true, -- add any plugins here that you want to enable -- for all possible plugins, see: -- * https://github.com/BrunoCiccarino/nekonight/tree/main/lua/nekonight/groups -- telescope = true, }, } < OVERRIDING COLORS & HIGHLIGHT GROUPS*nekonight-neko-night-overriding-colors-&-highlight-groups* How the highlight groups are calculated: 1. `colors` are determined based on your configuration, with the ability to override them using `config.on_colors(colors)`. 2. These `colors` are utilized to generate the highlight groups. 3. `config.on_highlights(highlights, colors)` can be used to override highlight groups. For default values of `colors` and `highlights`, please consult the storm <extras/lua/nekonight_storm.lua>, moon <extras/lua/nekonight_moon.lua>, night <extras/lua/nekonight_night.lua>, and day <extras/lua/nekonight_day.lua> themes. Settings & Changing Colors ~ >lua require("nekonight").setup({ -- use the night style style = "night", -- disable italic for functions styles = { functions = {} }, -- Change the "hint" color to the "orange" color, and make the "error" color bright red on_colors = function(colors) colors.hint = colors.orange colors.error = "#ff0000" end }) < Borderless Telescope ~ >lua require("nekonight").setup({ on_highlights = function(hl, c) local prompt = "#2d3149" hl.TelescopeNormal = { bg = c.bg_dark, fg = c.fg_dark, } hl.TelescopeBorder = { bg = c.bg_dark, fg = c.bg_dark, } hl.TelescopePromptNormal = { bg = prompt, } hl.TelescopePromptBorder = { bg = prompt, fg = prompt, } hl.TelescopePromptTitle = { bg = prompt, fg = prompt, } hl.TelescopePreviewTitle = { bg = c.bg_dark, fg = c.bg_dark, } hl.TelescopeResultsTitle = { bg = c.bg_dark, fg = c.bg_dark, } end, }) < Fix undercurls in Tmux ~ To have undercurls show up and in color, add the following to your Tmux <https://github.com/tmux/tmux> configuration file: >sh # 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 *nekonight-neko-night-extras* Extra color configs for Kitty <https://sw.kovidgoyal.net/kitty/conf.html>, Alacritty <https://github.com/alacritty/alacritty>, Fish <https://fishshell.com/docs/current/index.html>, WezTerm <https://wezfurlong.org/wezterm/config/files.html>, iTerm <https://iterm2.com/> and foot <https://codeberg.org/dnkl/foot> can be found in extras <extras/>. To use them, refer to their respective documentation. You can easily use the color palette for other plugins inside your Neovim <https://github.com/neovim/neovim> configuration: >lua local colors = require("nekonight.colors").setup() -- pass in any of the config options as explained above local util = require("nekonight.util") aplugin.background = colors.bg_dark aplugin.my_error = util.lighten(colors.red1, 0.3) -- number between 0 and 1. 0 results in white, 1 results in red1 < CONTRIBUTING *nekonight-neko-night-contributing* Pull requests are welcome. For the |nekonight-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: 1. Create a file like `lua/nekonight/extra/cool-app.lua`. 2. Add the name and output file extension to the `extras` table in `lua/nekonight/extra/init.lua`. 3. Run the following command to generate new |nekonight-extra| themes from the nekonight plugin directory: >sh ./scripts/build < 4. Check the newly created themes in the `extra/` directory. Please **DO NOT** commit them, as they are already automatically built by the CI. ============================================================================== 2. Links *nekonight-links* 1. *image*: https://user-images.githubusercontent.com/292349/115395546-d8d6f880-a198-11eb-98fb-a1194787701d.png Generated by panvimdoc <https://github.com/kdheepak/panvimdoc> vim:tw=78:ts=8:noet:ft=help:norl: