Home

Awesome

<h3 align="center"> <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/dev/assets/logos/exports/1544x1544_circle.png" width="100" alt="Logo"/><br/> <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/dev/assets/misc/transparent.png" height="30" width="0px"/> Catppuccin for NeoVim <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/dev/assets/misc/transparent.png" height="30" width="0px"/> </h3> <p align="center"> <a href="https://github.com/catppuccin/nvim/stargazers"><img src="https://img.shields.io/github/stars/catppuccin/nvim?colorA=1e1e28&colorB=c9cbff&style=for-the-badge&logo=starship style=for-the-badge"></a> <a href="https://github.com/catppuccin/nvim/issues"><img src="https://img.shields.io/github/issues/catppuccin/nvim?colorA=1e1e28&colorB=f7be95&style=for-the-badge"></a> <a href="https://github.com/catppuccin/nvim/contributors"><img src="https://img.shields.io/github/contributors/catppuccin/nvim?colorA=1e1e28&colorB=b1e1a6&style=for-the-badge"></a> </p> <p align="center"> <img src="https://raw.githubusercontent.com/catppuccin/nvim/dev/assets/ss.png"/> </p>

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.

<details> <summary>For init.lua</summary> <p>
local catppuccin = require("catppuccin")

-- configure it
catppuccin.setup(<settings>)
<br /> </details> <details> <summary>For init.vim</summary> <p>
lua << EOF
local catppuccin = require("catppuccin")

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

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.

Styles

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

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
require("feline").setup({
	components = require('catppuccin.core.integrations.feline'),
})
let g:lightline = {'colorscheme': 'catppuccin'}
require('lualine').setup {
  options = {
    theme = "catppuccin"
	-- ... the rest of your lualine config
  }
}
integration = {
  nvimtree = {
    enabled = true,
    show_root = true, -- makes the root folder not transparent
	transparent_panel = false, -- make the panel transparent
  }
}
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
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:

FunctionDescription
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

 

<p align="center"><img src="https://raw.githubusercontent.com/catppuccin/catppuccin/dev/assets/footers/gray0_ctp_on_line.svg?sanitize=true" /></p> <p align="center">Copyright &copy; 2020-present <a href="https://github.com/catppuccin" target="_blank">Catppuccin Org</a> <p align="center"><a href="https://github.com/catppuccin/catppuccin/blob/main/LICENSE"><img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&logoColor=d9e0ee&colorA=302d41&colorB=c9cbff"/></a></p>