All Projects → catppuccin → nvim

catppuccin / nvim

Licence: MIT License
🍨 Soothing pastel theme for NeoVim

Programming Languages

lua
6591 projects
Vim Script
2826 projects

Projects that are alternatives of or similar to nvim

catppuccin
😸 Soothing pastel theme for the high-spirited!
Stars: ✭ 2,046 (+210.47%)
Mutual labels:  customization, color-palette, fancy, catppuccin
nvim-highlite
A colorscheme template that is "lite" on logic for the developer.
Stars: ✭ 163 (-75.27%)
Mutual labels:  colorscheme, nvim, neovim-plugin
gtk
🪟 Soothing pastel theme for GTK3
Stars: ✭ 150 (-77.24%)
Mutual labels:  customization, color-palette, catppuccin
palette
🎨 Soothing pastel theme to use within your projects!
Stars: ✭ 50 (-92.41%)
Mutual labels:  fancy, catppuccin
kitty
😽 Soothing pastel theme for Kitty
Stars: ✭ 121 (-81.64%)
Mutual labels:  fancy, catppuccin
cutlass.nvim
Plugin that adds a 'cut' operation separate from 'delete'
Stars: ✭ 78 (-88.16%)
Mutual labels:  nvim, neovim-plugin
blossom.vim
a simple pinkish vim colorscheme designed for cursive italics
Stars: ✭ 18 (-97.27%)
Mutual labels:  colorscheme, nvim
stabilize.nvim
Neovim plugin to stabilize window open/close events.
Stars: ✭ 295 (-55.24%)
Mutual labels:  nvim, neovim-plugin
aerial.nvim
Neovim plugin for a code outline window
Stars: ✭ 485 (-26.4%)
Mutual labels:  nvim, neovim-plugin
nvim-startup.lua
Displays neovim startup time
Stars: ✭ 53 (-91.96%)
Mutual labels:  nvim, neovim-plugin
tmux
💽 Soothing pastel theme for Tmux!
Stars: ✭ 63 (-90.44%)
Mutual labels:  colorscheme, catppuccin
aquarium-vim
🌊 Aquarium, a simple vibrant dark theme for vim 🗒
Stars: ✭ 151 (-77.09%)
Mutual labels:  colorscheme, nvim
bolt.nvim
⚡ Ultrafast multi-pane file manager for Neovim with fuzzy matching
Stars: ✭ 100 (-84.83%)
Mutual labels:  nvim, neovim-plugin
comment-box.nvim
✨ Clarify and beautify your comments using boxes and lines.
Stars: ✭ 91 (-86.19%)
Mutual labels:  nvim, neovim-plugin
nord.nvim
Neovim theme based off of the Nord Color Palette, written in lua with tree sitter support
Stars: ✭ 412 (-37.48%)
Mutual labels:  colorscheme, nvim
feline.nvim
A minimal, stylish and customizable statusline for Neovim written in Lua
Stars: ✭ 867 (+31.56%)
Mutual labels:  nvim, neovim-plugin
nvim-terminal
A Lua-Neovim plugin that toggles a terminal
Stars: ✭ 54 (-91.81%)
Mutual labels:  nvim, neovim-plugin
Theme-Engine
Theme-Engine is usually made for modification & customization, so you can make trunks even more Colourful and better your Termux.
Stars: ✭ 31 (-95.3%)
Mutual labels:  customization, colorscheme
fm-nvim
🗂 Neovim plugin that lets you use your favorite terminal file managers (and fuzzy finders) from within Neovim.
Stars: ✭ 114 (-82.7%)
Mutual labels:  nvim, neovim-plugin
gruvqueen
Port of famous gruvbox theme in lua(inspired by gruvbox-material)
Stars: ✭ 42 (-93.63%)
Mutual labels:  colorscheme, nvim

Logo
Catppuccin for NeoVim

About

This port of Catppuccin is special because it was the first one and the one that originated the project itself. Given this, it's important to acknowledge that it all didn't come to be what it is now out of nowhere. So, if you are interested in knowing more about the initial stages of the theme, you can find it under the old-catppuccino branch.

🎁 Features

Usage

You can use your favorite plugin manager for this. Here are some examples with the most popular ones:

Vim-plug

Plug 'catppuccin/nvim', {'as': 'catppuccin'}

Packer.nvim

use({
	"catppuccin/nvim",
	as = "catppuccin"
})

Vundle

Plugin 'catppuccin/nvim', {'name': 'catppuccin'}

Setup

There are already some sane defaults that you may like, however you can change them to match your taste. These are the defaults:

transparent_background = false,
term_colors = false,
styles = {
	comments = "italic",
	functions = "italic",
	keywords = "italic",
	strings = "NONE",
	variables = "italic",
},
integrations = {
	treesitter = true,
	native_lsp = {
		enabled = true,
		virtual_text = {
			errors = "italic",
			hints = "italic",
			warnings = "italic",
			information = "italic",
		},
		underlines = {
			errors = "underline",
			hints = "underline",
			warnings = "underline",
			information = "underline",
		},
	},
	lsp_trouble = false,
	cmp = true,
	lsp_saga = false,
	gitgutter = false,
	gitsigns = true,
	telescope = true,
	nvimtree = {
		enabled = true,
		show_root = false,
		transparent_panel = false,
	},
	neotree = {
		enabled = false,
		show_root = false,
		transparent_panel = false,
	},
	which_key = false,
	indent_blankline = {
		enabled = true,
		colored_indent_levels = false,
	},
	dashboard = true,
	neogit = false,
	vim_sneak = false,
	fern = false,
	barbar = false,
	bufferline = true,
	markdown = true,
	lightspeed = false,
	ts_rainbow = false,
	hop = false,
	notify = true,
	telekasten = true,
	symbols_outline = true,
}

The way you setup the settings on your configuration varies on whether you are using vimL for this or Lua.

For init.lua

local catppuccin = require("catppuccin")

-- configure it
catppuccin.setup(<settings>)

For init.vim

lua << EOF
local catppuccin = require("catppuccin")

-- configure it
catppuccin.setup(<settings>)
EOF

After setting things up, you can load catppuccin like so:

" Vim Script
colorscheme catppuccin
-- Lua
vim.cmd[[colorscheme catppuccin]]

Configuration

Although settings already have self-explanatory names, here is where you can find info about each one of them and their classifications!

General

This settings are unrelated to any group and are independent.

  • transparent_background: (Boolean) if true, disables setting the background color.
  • term_colors: (Boolean) if true, sets terminal colors (e.g. g:terminal_color_0).

Styles

Handles the style of general hi groups (see :h highlight-args):

  • comments: (String) changed the style of the comments.
  • functions: (String) changed the style of the functions.
  • keywords: (String) changed the style of the keywords.
  • strings: (String) changed the style of the strings.
  • variables: (String) changed the style of the variables.

Integrations

These integrations allow catppuccin to set the theme of various plugins/stuff. To enable an integration you just need to set it to true, however, there are some special integrations...

If you'd like to know which highlight groups are being affected by catppuccin, checkout this directory: lua/catppuccin/core/integrations/.

Special Integrations
  • Feline.nvim: Catppuccin provides this integration as a component that you can select on your Feline config:
require("feline").setup({
	components = require('catppuccin.core.integrations.feline'),
})
  • Indent-blankline.nvim: setting enabled to true enables this integration. colored_indent_levels enables char highlights per indent level. Follow the instructions here to set the latter up.
  • Lightline: use this to set it up (Note: catppuccin is the only valid colorscheme name. It will pick the one set in your config):
let g:lightline = {'colorscheme': 'catppuccin'}
  • Lualine: use this to set it up (Note: catppuccin is the only valid theme name. It will pick the one set in your config):
require('lualine').setup {
  options = {
    theme = "catppuccin"
	-- ... the rest of your lualine config
  }
}
  • Native Nvim LSP: setting enabled to true enables this integration. In the inners tables you can set the style for the diagnostics, both virtual_text (what you see on the side) and underlines (what points directly at the thing (e.g. an error)).
  • NvimTree: setting enabled to true enables this integration:
integration = {
  nvimtree = {
    enabled = true,
    show_root = true, -- makes the root folder not transparent
	transparent_panel = false, -- make the panel transparent
  }
}
  • Neo-tree: setting enabled to true enables this integration:
integration = {
  neotree = {
    enabled = true,
    show_root = true, -- makes the root folder not transparent
	transparent_panel = false, -- make the panel transparent
  }
}

Extra

API

The API allows you fetch data from Catppuccin. It can be required as a Lua module:

local cp_api = require("catppuccin.api.<module>")
Modules
  • colors
cp_api.get_colors()

Returns a table where the key is the name of the color and the value is its hex value.

Overwriting highlight groups

Highlight groups can be overwritten like so:

catppuccin.remap({ <hi_group> = { <fields> }, })

Here is an example:

local colors = require'catppuccin.api.colors'.get_colors() -- fetch colors with API
catppuccin.remap({ Comment = { fg = colors.flamingo }, })

Hooks

Use them to execute code at certain events. These are the ones available:

Function Description
before_loading() Before loading a colorscheme
after_loading() After loading a colorscheme

They can be used like so:

local catppuccin = require("catppuccin")

catppuccin.before_loading = function ()
	print("I ran before loading Catppuccin!")
end

💝 Thanks to

 

Copyright © 2020-present Catppuccin Org

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].