Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

🍨 Soothing pastel theme for (Neo)vim

License

NotificationsYou must be signed in to change notification settings

nfejzic/catppuccin.nvim

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo
Catppuccin for(Neo)vim

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

Flavours

Latte
Frappe
Macchiato
Mocha

Bake your own flavour! Here are someconfig from our community:(background source)

nvimwalk-custom

Features

Installation

lazy.nvim

{"catppuccin/nvim",name="catppuccin"}

packer.nvim

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

vim-plug

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

Usage

colorscheme catppuccin" catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha
vim.cmd.colorscheme"catppuccin"

Configuration

There is no need to callsetup if you don't want to change the default options and settings.

require("catppuccin").setup({flavour="mocha",-- latte, frappe, macchiato, mochabackground= {-- :h backgroundlight="latte",dark="mocha",    },transparent_background=false,show_end_of_buffer=false,-- show the '~' characters after the end of buffersterm_colors=false,dim_inactive= {enabled=false,shade="dark",percentage=0.15,    },no_italic=false,-- Force no italicno_bold=false,-- Force no boldstyles= {comments= {"italic"},conditionals= {"italic"},loops= {},functions= {},keywords= {},strings= {},variables= {},numbers= {},booleans= {},properties= {},types= {},operators= {},    },color_overrides= {},custom_highlights= {},integrations= {cmp=true,gitsigns=true,nvimtree=true,telescope=true,notify=false,mini=false,-- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations)    },})-- setup must be called before loadingvim.cmd.colorscheme"catppuccin"

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.

  • background: (Table) Match :set background=light/dark with :Catppuccin background.light/dark
  • term_colors: (Boolean) if true, sets terminal colors (e.g.g:terminal_color_0).
  • transparent_background: (Boolean) if true, disables setting the background color.

Dim inactive

This setting manages the ability to dim the inactive splits/windows/buffers displayed.

  • enabled: (Boolean) if true, dims the background color of inactive window or buffer or split.
  • shade: (string) sets the shade to apply to the inactive split or window or buffer.
  • percentage: (number 0 < x < 1) percentage of the shade to apply to the inactive window, split or buffer.

Styles

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

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

Customize highlights

Get catppuccin colors

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"

Will returns a table where the key is the name of the color and the value is its hex value corresponding to each flavour.

Overwriting colors

Colors can be overwritten usingcolor_overrides in the setting, like so:

require("catppuccin").setup {color_overrides= {all= {text="#ffffff",        },latte= {base="#ff0000",mantle="#242424",crust="#474747",        },frappe= {},macchiato= {},mocha= {},    }}
Click here to see color palette document
NameLatteFrappeMacchiatoMochaUsage
rosewater#dc8a78#F2D5CF#F4DBD6#F5E0DCWinbar
flamingo#DD7878#EEBEBE#F0C6C6#F2CDCDTarget word
pink#ea76cb#F4B8E4#F5BDE6#F5C2E7Just pink
mauve#8839EF#CA9EE6#C6A0F6#CBA6F7Tag
red#D20F39#E78284#ED8796#F38BA8Error
maroon#E64553#EA999C#EE99A0#EBA0ACLighter red
peach#FE640B#EF9F76#F5A97F#FAB387Number
yellow#df8e1d#E5C890#EED49F#F9E2AFWarning
green#40A02B#A6D189#A6DA95#A6E3A1Diff add
teal#179299#81C8BE#8BD5CA#94E2D5Hint
sky#04A5E5#99D1DB#91D7E3#89DCEBOperator
sapphire#209FB5#85C1DC#7DC4E4#74C7ECConstructor
blue#1e66f5#8CAAEE#8AADF4#89B4FADiff changed
lavender#7287FD#BABBF1#B7BDF8#B4BEFECursorLine Nr
text#4C4F69#c6d0f5#CAD3F5#CDD6F4Default fg
subtext1#5C5F77#b5bfe2#B8C0E0#BAC2DEIndicator
subtext0#6C6F85#a5adce#A5ADCB#A6ADC8Float title
overlay2#7C7F93#949cbb#939AB7#9399B2Popup fg
overlay1#8C8FA1#838ba7#8087A2#7F849CConceal color
overlay0#9CA0B0#737994#6E738D#6C7086Fold color
surface2#ACB0BE#626880#5B6078#585B70Default comment
surface1#BCC0CC#51576d#494D64#45475ADarker comment
surface0#CCD0DA#414559#363A4F#313244Darkest comment
base#EFF1F5#303446#24273A#1E1E2EDefault bg
mantle#E6E9EF#292C3C#1E2030#181825Darker bg
crust#DCE0E8#232634#181926#11111BDarkest bg

Overwriting highlight groups

Global highlight groups can be overwritten in the setting like so:

custom_highlights=function(colors)return {<hl_group>= {<fields> }    }end

Here is an example:

require("catppuccin").setup {custom_highlights=function(colors)return {Comment= {fg=colors.flamingo },            ["@constant.builtin"]= {fg=colors.peach,style= {} },            ["@comment"]= {fg=colors.surface2,style= {"italic"} },        }end}

Per flavour highlight groups can be overwritten in the setting like so:

highlight_overrides= {all=function(colors)-- Global highlight, will be replaced with custom_highlights if existsreturn {<hl_group>= {<fields> }        }end,-- Same for each flavourlatte=function(latte)end,frappe=function(frappe)end,macchiato=function(macchiato)end,mocha=function(mocha)end,}

Here is an 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,    },}

Integrations

catppuccin-nvim provides theme support for other plugins in the Neovim ecosystem and extended Neovim functionality throughintegrations.

Below is a list of supported plugins and their corresponding integration module. (SeeSpecial integrations for more.)

PluginModule
aerial.nvimaerial
barbar.nvimbarbar
barbecue.nvimbarbecue, Special
beacon.nvimbeacon
bufferline.nvimSpecial
coc.nvimcoc_nvim, Special
dashboard-nvimdashboard
feline.nvimSpecial
fern.vimfern
fidget.nvimSpecial
gitsigns.nvimgitsigns
harpoonharpoon
hop.nvimhop
indent-blankline.nvimSpecial
leap.nvimleap
lightline.vimSpecial
lightspeed.nvimlightspeed
lspsaga.nvimlsp_saga, Special
lualine.nvimSpecial
markdownmarkdown
masonmason
mini.nvimmini
neo-tree.nvimneotree
neogitneogit
neotestneotest
noice.nvimnoice
nvim-cmpcmp
nvim-dap-uidap, Special
nvim-dapdap, Special
nvim-lspconfignative_lsp, Special
nvim-navicnavic, Special
nvim-notifynotify
nvim-semantic-tokenssemantic_tokens
nvim-tree.luanvimtree
nvim-treesitter-contexttreesitter_context
nvim-treesittertreesitter
nvim-ts-rainbowts_rainbow
nvim-ts-rainbow2ts_rainbow2
overseer.nvimoverseer
pounce.nvimpounce
symbols-outline.nvimsymbols_outline
telekasten.nvimtelekasten
telescope.nvimtelescope
trouble.nvimlsp_trouble
vim-airlineSpecial
vim-clapSpecial
vim-gitguttergitgutter
vim-illuminateilluminate
vim-sandwichsandwich
vim-sneakvim_sneak
vimwikivimwiki
which-key.nvimwhich_key

"Special" module means Special integrations, seehttps://github.com/catppuccin/nvim#special-integrations for more details

These integrations allow catppuccin to set the theme of various plugins. To enable an integration you just need to set it totrue, for example:

require("catppuccin").setup({integrations= {<module>=<boolean>    }})
Click here to see an example config
require("catppuccin").setup({integrations= {aerial=false,barbar=false,beacon=false,cmp=true,coc_nvim=false,dashboard=true,fern=false,fidget=false,gitgutter=false,gitsigns=true,harpoon=false,hop=false,illuminate=false,leap=false,lightspeed=false,lsp_saga=false,lsp_trouble=false,markdown=true,mason=true,mini=false,neogit=false,neotest=false,neotree=false,noice=false,notify=false,nvimtree=true,overseer=false,pounce=false,sandwich=false,semantic_tokens=false,symbols_outline=false,telekasten=false,telescope=true,treesitter=true,treesitter_context=false,ts_rainbow=false,ts_rainbow2=false,vim_sneak=false,vimwiki=false,which_key=false,-- Special integrations, see https://github.com/catppuccin/nvim#special-integrationsbarbecue= {dim_dirname=true,        },dap= {enabled=false,enable_ui=false,        },indent_blankline= {enabled=true,colored_indent_levels=false,        },native_lsp= {enabled=true,virtual_text= {errors= {"italic"},hints= {"italic"},warnings= {"italic"},information= {"italic"},            },underlines= {errors= {"underline"},hints= {"underline"},warnings= {"underline"},information= {"underline"},            },        },navic= {enabled=false,custom_bg="NONE",        },    },})

Special integrations

barbecue.nvim

Use this to set it up (Note:catppuccin is the only valid theme name. It will pick the one set in your config):

require("barbecue").setup {theme="catppuccin",}

The directory name color shown is dimmed by default, you can customize this setting.

integrations= {barbecue= {dim_dirname=true,  }}
bufferline.nvim

Update your bufferline config to use the Catppuccin components:

Note: bufferline needs to be loaded after setting up catppuccin or it will highlight incorrectly

use"akinsho/bufferline.nvim"{after="catppuccin",config=function()require("bufferline").setup {highlights=require("catppuccin.groups.integrations.bufferline").get()    }end}

Configurations are self-explanatory, see:h bufferline-highlights for detailed explanations:

localmocha=require("catppuccin.palettes").get_palette"mocha"bufferline.setup {highlights=require("catppuccin.groups.integrations.bufferline").get {styles= {"italic","bold"},custom= {all= {fill= {bg="#000000"},            },mocha= {background= {fg=mocha.text },            },latte= {background= {fg="#000000"},            },        },    },}
coc.nvim

Settingenabled totrue enables this integration.

coc_nvim=true,

Note: coc.nvim by default link to native lsp highlight groups so config fromnative_lsp will also apply to coc

In the inners tables you can set the style for the diagnostics, bothvirtual_text (what you see on the side) andunderlines (what points directly at the thing (e.g. an error)).

native_lsp = {    enabled = true,    virtual_text = {        errors = { "italic" },        hints = { "italic" },        warnings = { "italic" },        information = { "italic" },    },    underlines = {        errors = { "underline" },        hints = { "underline" },        warnings = { "underline" },        information = { "underline" },    },},
feline.nvim

Update your Feline config to use the Catppuccin components:

localctp_feline=require('catppuccin.groups.integrations.feline')ctp_feline.setup()require("feline").setup({components=ctp_feline.get(),})

Notice that callingsetup() is optional. You may pass a lua table in order to change assets, settings and the colors per vim mode.

Here are the defaults:

localclrs=require("catppuccin.palettes").get_palette()localctp_feline=require('catppuccin.groups.integrations.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=true-- show if the file has been modified    },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 },    }})

Note: Currently felinedoesn't officially support custom themes. In order for:Catppuccin <flavour> to work you could add this autocmd as a workaround:

vim.api.nvim_create_autocmd("ColorScheme", {pattern="*",callback=function()package.loaded["feline"]=nilpackage.loaded["catppuccin.groups.integrations.feline"]=nilrequire("feline").setup {components=require("catppuccin.groups.integrations.feline").get(),        }end,})
fidget.nvim

Set fidget module totrue

fidget=true

Then setwindow.blend to0:

require("fidget").setup {window= {blend=0,    },-- ... the rest of your fidget config}
indent-blankline.nvim

Settingenabled totrue enables this integration.colored_indent_levels enables char highlights per indent level. Follow the instructionshere to set the latter up.

indent_blankline= {enabled=true,colored_indent_levels=false,},
lightline.vim

Use this to set it up (Note:catppuccin is the only valid colorscheme name. It will pick the one set in your config):

letg:lightline= {'colorscheme':'catppuccin'}
lspsaga.nvim

For custom Lsp Kind Icon and Color

require("lspsaga").setup {ui= {kind=require("catppuccin.groups.integrations.lsp_saga").custom_kind(),    },}
lualine.nvim

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    }}
nvim-dap & nvim-dap-ui

Settingenabled totrue:

integration= {dap= {enabled=true,enable_ui=true,-- enable nvim-dap-ui    }}
-- You NEED to override nvim-dap's default highlight groups, AFTER requiring nvim-daprequire("dap")localsign=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-lspconfig

Settingenabled totrue enables this integration. In the inners tables you can set the style for the diagnostics, bothvirtual_text (what you see on the side) andunderlines (what points directly at the thing (e.g. an error)).

native_lsp= {enabled=true,virtual_text= {errors= {"italic"},hints= {"italic"},warnings= {"italic"},information= {"italic"},    },underlines= {errors= {"underline"},hints= {"underline"},warnings= {"underline"},information= {"underline"},    },},
nvim-navic

Settingenabled totrue:

navic= {enabled=false,custom_bg="NONE",},
-- You NEED to enable highlight in nvim-navic setting or it won't workrequire("nvim-navic").setup {highlight=true}
vim-airline

Use this to set it up (Note:catppuccin is the only valid colorscheme name. It will pick the one set in your config):

letg:airline_theme='catppuccin'
vim-clap

Use this to set it up:

letg:clap_theme='catppuccin'

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

Compile

Note: As of 7/10/2022, catppuccin should be able to automatically recompile when the setup table changed.

Catppuccin is a highly customizable and configurable colorscheme. This does however come at the cost of complexity and execution time.

Catppuccin can pre compute the results of your configuration and store the results in a compiled lua file. We use these precached values to set it's highlights.

Config

By default catppuccin writes the compiled results into the system's cache directory. You can change the cache dir using:

require("catppuccin").setup({-- Note: On windows we replace `/` with `\` by defaultcompile_path=vim.fn.stdpath"cache".."/catppuccin"})

Compile commands

:CatppuccinCompile" Create/update the compile file
require('catppuccin').compile()-- Catppuccin also provide a function to work with the catppuccin compiler.

Hooks

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

AutocmdDescription
ColorSchemePreBefore loading a colorscheme
ColorSchemeAfter loading a colorscheme

They can be used like so:

vim.api.nvim_create_autocmd("ColorSchemePre", {pattern="*",callback=function()print"I ran before loading Catppuccin!"end})vim.api.nvim_create_autocmd("ColorScheme", {pattern="*",callback=function()localcolors=require("catppuccin.palettes").get_palette()-- do something with colorsend})

FAQ

Switch Catppuccin flavour on the fly

:Catppuccinmocha/macchiato/frappe/latte

Note: the command has autocompletion enabled, so you can just press tab to cycle through the flavours

Load other custom highlights later

require("catppuccin.lib.highlighter").syntax()

For example:

localcolors=require("catppuccin.palettes").get_palette()-- fetch colors from paletterequire("catppuccin.lib.highlighter").syntax({Comment= {fg=colors.surface0 }})

Note: Unlike the:highlight command which can update a highlight group, this function completely replaces the definition. (:h nvim_set_hl)

Wrong treesitter highlights

Please disableadditional_vim_regex_highlighting

require("nvim-treesitter.configs").setup {highlight= {enable=true,additional_vim_regex_highlighting=false    },}

Colors doesn't match preview screenshots

Catppuccin requires true color support AKA terminals support the full range of 16 million colors

  • Supported: iterm2 (macOS), kitty, wezterm, alacritty, tmux, ...

Full list of support terminals can be found here:https://github.com/termstandard/colors#truecolor-support-in-output-devices

  • Unsupported terminal: Terminal.app (macOS), Terminus, Terminology, ...

Full list of Unsupported terminals can be found here:https://github.com/termstandard/colors#not-supporting-truecolor

Thanks to

 

Copyright © 2021-presentCatppuccin Org

About

🍨 Soothing pastel theme for (Neo)vim

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Lua95.8%
  • Vim Script4.0%
  • Scheme0.2%

[8]ページ先頭

©2009-2025 Movatter.jp