Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork312
🍨 Soothing pastel theme for (Neo)vim
License
catppuccin/nvim
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
This port ofCatppuccin 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 thev0.1 tag.
- Supports both Vim and Neovim (requiresneovim >= 0.8 orvim >= 9 compiled withlua >= 5.1)
- Highly configurable with 4 different flavours andthe ability to create your own!
- Compiled configuration forfast startup time
- Integrations with lsp, treesitter anda bunch of plugins
- Support formany other applications
{"catppuccin/nvim",name="catppuccin",priority=1000 }add({source="catppuccin/nvim",name="catppuccin"})
use {"catppuccin/nvim",as="catppuccin"}
Plug'catppuccin/nvim', {'as':'catppuccin' }
colorscheme catppuccin" catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha
vim.cmd.colorscheme"catppuccin"
There is no need to callsetup if you don't want to change the default options and settings.
require("catppuccin").setup({flavour="auto",-- latte, frappe, macchiato, mochabackground= {-- :h backgroundlight="latte",dark="mocha", },transparent_background=false,-- disables setting the background color.float= {transparent=false,-- enable transparent floating windowssolid=false,-- use solid styling for floating windows, see |winborder| },show_end_of_buffer=false,-- shows the '~' characters after the end of buffersterm_colors=false,-- sets terminal colors (e.g. `g:terminal_color_0`)dim_inactive= {enabled=false,-- dims the background color of inactive windowshade="dark",percentage=0.15,-- percentage of the shade to apply to the inactive window },no_italic=false,-- Force no italicno_bold=false,-- Force no boldno_underline=false,-- Force no underlinestyles= {-- Handles the styles of general hi groups (see `:h highlight-args`):comments= {"italic"},-- Change the style of commentsconditionals= {"italic"},loops= {},functions= {},keywords= {},strings= {},variables= {},numbers= {},booleans= {},properties= {},types= {},operators= {},-- miscs = {}, -- Uncomment to turn off hard-coded styles },lsp_styles= {-- Handles the style of specific lsp hl groups (see `:h lsp-highlight`).virtual_text= {errors= {"italic"},hints= {"italic"},warnings= {"italic"},information= {"italic"},ok= {"italic"}, },underlines= {errors= {"underline"},hints= {"underline"},warnings= {"underline"},information= {"underline"},ok= {"underline"}, },inlay_hints= {background=true, }, },color_overrides= {},custom_highlights= {},default_integrations=true,auto_integrations=false,integrations= {cmp=true,gitsigns=true,nvimtree=true,notify=false,mini= {enabled=true,indentscope_color="", },-- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations) },})-- setup must be called before loadingvim.cmd.colorscheme"catppuccin"
locallatte=require("catppuccin.palettes").get_palette"latte"localfrappe=require("catppuccin.palettes").get_palette"frappe"localmacchiato=require("catppuccin.palettes").get_palette"macchiato"localmocha=require("catppuccin.palettes").get_palette"mocha"
Returns a table where the key is the name of the color and the value is the hex code.
Colors can be overwritten usingcolor_overrides, see#323 for inspiration:
require("catppuccin").setup {color_overrides= {all= {text="#ffffff", },latte= {base="#ff0000",mantle="#242424",crust="#474747", },frappe= {},macchiato= {},mocha= {}, }}
Global highlight groups can be overwritten, for example:
require("catppuccin").setup {custom_highlights=function(colors)return {Comment= {fg=colors.flamingo },TabLineSel= {bg=colors.pink },CmpBorder= {fg=colors.surface2 },Pmenu= {bg=colors.none }, }end}
Highlight groups per flavour can also be overwritten, for example:
require("catppuccin").setup {highlight_overrides= {all=function(colors)return {NvimTreeNormal= {fg=colors.none },CmpBorder= {fg="#3e4145"}, }end,latte=function(latte)return {Normal= {fg=latte.base }, }end,frappe=function(frappe)return { ["@comment"]= {fg=frappe.surface2,style= {"italic"} }, }end,macchiato=function(macchiato)return {LineNr= {fg=macchiato.overlay1 }, }end,mocha=function(mocha)return {Comment= {fg=mocha.flamingo }, }end, },}
Catppuccin provides theme support for other plugins in the Neovim ecosystem and extended Neovim functionality throughintegrations.
To enable/disable an integration you just need to set it to true/false, for example:
require("catppuccin").setup({integrations= {cmp=true,gitsigns=true,nvimtree=true,notify=false,mini= {enabled=true,indentscope_color="", }, }})
Some integrations are enabled by default, you can control this behaviour withdefault_integrations option.
require("catppuccin").setup({default_integrations=false,})
If you uselazy.nvim as your package manager, you can use theauto_integrations option to let catppuccin automatically detect installed plugins and enable their respective integrations.
require("catppuccin").setup({auto_integrations=true,})
Below is a list of supported plugins and their corresponding integration module.
Important
If you'd like to see the full list of highlight groups modified by Catppuccin, see thelua/catppuccin/groups/integrations/ directory.
| Plugin | Default |
| aerial.nvim | aerial=false |
| alpha-nvim | alpha=true |
| barbar.nvim | barbar=false |
| barbecue.nvim | barbecue= {dim_dirname=true,-- directory name is dimmed by defaultbold_basename=true,dim_context=false,alt_background=false,}, SpecialUse this to set it up: require("barbecue").setup {theme="catppuccin",-- catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha} |
| beacon.nvim | beacon=false |
| blink.cmp | blink_cmp= {style='bordered',} |
| bufferline.nvim | SpecialUpdate your bufferline config to use the Catppuccin components:
use"akinsho/bufferline.nvim"{after="catppuccin",config=function()require("bufferline").setup {highlights=require("catppuccin.special.bufferline").get_theme() }end} Configurations are self-explanatory, see localmocha=require("catppuccin.palettes").get_palette"mocha"bufferline.setup {highlights=require("catppuccin.special.bufferline").get_theme {styles= {"italic","bold"},custom= {all= {fill= {bg="#000000"}, },mocha= {background= {fg=mocha.text }, },latte= {background= {fg="#000000"}, }, }, },} |
| buffon.nvim | buffon=false |
| coc.nvim | coc_nvim=false SpecialSetting coc_nvim=true,
In the nested tables you can set the style for the diagnostics, both lsp_styles= {virtual_text= {errors= {"italic"},hints= {"italic"},warnings= {"italic"},information= {"italic"},ok= {"italic"}, },underlines= {errors= {"underline"},hints= {"underline"},warnings= {"underline"},information= {"underline"},ok= {"underline"}, },inlay_hints= {background=true, },}, |
| colorful-winsep.nvim | colorful_winsep= {enabled=false,color="red",} |
| dashboard-nvim | dashboard=true |
| diffview.nvim | diffview=false |
| dropbar.nvim | dropbar= {enabled=false,color_mode=false,-- enable color for kind's texts, not just kind's icons}, |
| feline.nvim | SpecialUpdate your Feline config to use the Catppuccin components: localctp_feline=require('catppuccin.special.feline')ctp_feline.setup()require("feline").setup({components=ctp_feline.get_statusline(),}) Notice that calling Here are the defaults: localclrs=require("catppuccin.palettes").get_palette()localctp_feline=require('catppuccin.special.feline')localU=require"catppuccin.utils.colors"ctp_feline.setup({assets= {left_separator="",right_separator="",mode_icon="",dir="",file="",lsp= {server="",error="",warning="",info="",hint="", },git= {branch="",added="",changed="",removed="", }, },sett= {text=U.vary_color({latte=latte.base },clrs.surface0),bkg=U.vary_color({latte=latte.crust },clrs.surface0),diffs=clrs.mauve,extras=clrs.overlay1,curr_file=clrs.maroon,curr_dir=clrs.flamingo,show_modified=false,-- show if the file has been modifiedshow_lazy_updates=false-- show the count of updatable plugins from lazy.nvim-- need to set checker.enabled = true in lazy.nvim first-- the icon is set in ui.icons.plugin in lazy.nvim },mode_colors= { ["n"]= {"NORMAL",clrs.lavender }, ["no"]= {"N-PENDING",clrs.lavender }, ["i"]= {"INSERT",clrs.green }, ["ic"]= {"INSERT",clrs.green }, ["t"]= {"TERMINAL",clrs.green }, ["v"]= {"VISUAL",clrs.flamingo }, ["V"]= {"V-LINE",clrs.flamingo }, ["�"]= {"V-BLOCK",clrs.flamingo }, ["R"]= {"REPLACE",clrs.maroon }, ["Rv"]= {"V-REPLACE",clrs.maroon }, ["s"]= {"SELECT",clrs.maroon }, ["S"]= {"S-LINE",clrs.maroon }, ["�"]= {"S-BLOCK",clrs.maroon }, ["c"]= {"COMMAND",clrs.peach }, ["cv"]= {"COMMAND",clrs.peach }, ["ce"]= {"COMMAND",clrs.peach }, ["r"]= {"PROMPT",clrs.teal }, ["rm"]= {"MORE",clrs.teal }, ["r?"]= {"CONFIRM",clrs.mauve }, ["!"]= {"SHELL",clrs.green }, },view= {lsp= {progress=true,-- if true the status bar will display an lsp progress indicatorname=false,-- if true the status bar will display the lsp servers name, otherwise it will display the text "Lsp"exclude_lsp_names= {},-- lsp server names that should not be displayed when name is set to trueseparator="|",-- the separator used when there are multiple lsp servers }, }})
vim.api.nvim_create_autocmd("ColorScheme", {pattern="*",callback=function()package.loaded["feline"]=nilpackage.loaded["catppuccin.special.feline"]=nilrequire("feline").setup {components=require("catppuccin.special.feline").get_statusline(), }end,}) |
| fern.vim | fern=false |
| fidget.nvim | fidget=false SpecialSet `notification.window.winblend` to `0`:require("fidget").setup {notification= {window= {winblend=0, }, }-- ... the rest of your fidget config} |
| flash.nvim | flash=true |
| fzf-lua | fzf=true |
| gitgraph.nvim | gitgraph=false |
| gitsigns.nvim | gitsigns=true Specialgitsigns= {enabled=true,-- align with the transparent_background option by defaulttransparent=false,} |
| grug-far.nvim | grug_far=false |
| harpoon | harpoon=false |
| headlines.nvim | headlines=false |
| hop.nvim | hop=false |
| indent-blankline.nvim | indent_blankline= {enabled=true,scope_color="",-- catppuccin color (eg. `lavender`) Default: textcolored_indent_levels=false,}, Special
|
| leap.nvim | leap=false |
| lightline.vim | Specialletg:lightline= {'colorscheme':'catppuccin'} |
| lightspeed.nvim | lightspeed=false |
| lir.nvim | lir= {enabled=false,git_status=false} |
| lspsaga.nvim | lsp_saga=false SpecialFor custom Lsp Kind Icon and Color require("lspsaga").setup {ui= {kind=require("catppuccin.groups.integrations.lsp_saga").custom_kind(), },} |
| lualine.nvim | Specialrequire('lualine').setup {options= {theme="catppuccin"-- ... the rest of your lualine config }} |
| markview.nvim | markview=false |
| mason.nvim | mason=false |
| mini.nvim | mini= {enabled=true,indentscope_color="",-- catppuccin color (eg. `lavender`) Default: text}, |
| neo-tree.nvim | neotree=true |
| neogit | neogit=true |
| neotest | neotest=false |
| noice.nvim | noice=false |
| notifier.nvim | notifier=false |
| nvim-cmp | cmp=true |
| copilot.vim | copilot_vim=false, |
| nvim-dap | dap=true Speciallocalsign=vim.fn.sign_definesign("DapBreakpoint", {text="●",texthl="DapBreakpoint",linehl="",numhl=""})sign("DapBreakpointCondition", {text="●",texthl="DapBreakpointCondition",linehl="",numhl=""})sign("DapLogPoint", {text="◆",texthl="DapLogPoint",linehl="",numhl=""}) |
| nvim-dap-ui | dap_ui=true |
| navic | navic= {enabled=false,custom_bg="NONE",-- "lualine" will set background to mantle}, Special-- You NEED to enable highlight in nvim-navic setting or it won't workrequire("nvim-navic").setup {highlight=true} |
| nvim-notify | notify=false |
| nvim-surround | nvim_surround=false |
| nvim-tree.lua | nvimtree=true |
| nvim-treesitter-context | treesitter_context=true |
| nvim-ts-rainbow2 | ts_rainbow2=false |
| nvim-ts-rainbow | ts_rainbow=false |
| nvim-ufo | ufo=true |
| nvim-window-picker | window_picker=false |
| octo.nvim | octo=false |
| overseer.nvim | overseer=false |
| pounce.nvim | pounce=false |
| rainbow-delimiters.nvim | rainbow_delimiters=true |
| reactive.nvim | SpecialThere're 2 available presets ( Here is how you can use them. require('reactive').setup {load= {'catppuccin-mocha-cursor','catppuccin-mocha-cursorline'}} To use another flavour just replace |
| render-markdown.nvim | render_markdown=true |
| snacks.nvim | snacks= {enabled=false,indent_scope_color="",-- catppuccin color (eg. `lavender`) Default: text} |
| symbols-outline.nvim | Note This plugin has been archived by the author, consider usingoutline.nvim symbols_outline=false |
| telekasten.nvim | telekasten=false |
| telescope.nvim | telescope= {enabled=true,} |
| trouble.nvim | lsp_trouble=false |
| vim-airline | Specialletg:airline_theme='catppuccin' |
| vim-clap | SpecialUse this to set it up: letg:clap_theme='catppuccin' |
| vim-dadbod-ui | dadbod_ui=false |
| vim-gitgutter | gitgutter=false |
| vim-illuminate | illuminate= {enabled=true,lsp=false} |
| vim-sandwich | sandwich=false |
| vim-signify | signify=false |
| vim-sneak | vim_sneak=false |
| vimwiki | vimwiki=false |
| which-key.nvim | which_key=false |
Catppuccin is a highly customizable and configurable colorscheme. This doeshowever come at the cost of complexity and execution time. Catppuccin can precompute the results of your configuration and store the results in a compiledLua file. We use these pre-cached values to set it's highlights.
By default, Catppuccin writes the compiled results into the system's cachedirectory. See below if you'd like to change the cache directory:
require("catppuccin").setup({-- Note: On windows we replace `/` with `\` by defaultcompile_path=vim.fn.stdpath"cache".."/catppuccin"})
Please disableadditional_vim_regex_highlighting:
require("nvim-treesitter.configs").setup {highlight= {enable=true,additional_vim_regex_highlighting=false },}
Catppuccin requires that your terminal supports true color, meaning that yourterminal can display the full range of 16 million colors.
- Supported: iterm2 (macOS), kitty, wezterm, alacritty,see full list...
- Unsupported: Terminal.app (macOS), Terminus, Terminology,see full list...
If you use tmux, make sure to enabletrue colorsupportanditalic fontsupport.This will prevent issues raised in#415 and#428.
Current Maintainer(s)
Previous Maintainer(s)
Copyright © 2021-presentCatppuccin Org
About
🍨 Soothing pastel theme for (Neo)vim
Topics
Resources
License
Code of conduct
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.






