Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 1 addition & 11 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,8 @@ end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

# go
[*.go]
[*.colortemplate]
indent_style = tab
indent_size = 4

# python
[*.{ini,py,py.tpl,rst}]
indent_size = 4

# rust
[*.rs]
indent_size = 4

# documentation, utils
[*.{md,mdx,diff}]
Expand Down
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
</p>

## ✨ Integrations

- [lightline](https://github.com/itchyny/lightline.vim)
- [airline](https://github.com/vim-airline/vim-airline)

Expand All @@ -33,28 +34,35 @@ git clone https://github.com/catppuccin/vim.git ~/.vim/pack/vendor/start/catppuc
```

### Manually

1. Clone this repository
2. Put the `colors` folder inside your `.vim` (or if the `colors` folder already exists, move all the catppuccin palettes inside it)
3. When Vim is running use `:colorscheme catppuccin_` followed by the flavor name (e.g. `:colorscheme catppuccin_mocha`)

### Vim-Plug

```vim
Plug 'catppuccin/vim', { 'as': 'catppuccin' }
```

## ✨ Integrations setup

### lightline

1. Download the plugin via your plugin manager or manually
2. Set the colorscheme by inserting the following line in your `.vimrc`:

```vim
let g:lightline = {'colorscheme': 'catppuccin_mocha'}
```

3. Now that lightline is good to go, you can use `set noshowmode` to hide the default mode showcase since now it will be displayed in the plugin

### airline

Airline should automatically choose the correct theme.
If it does not you can force it by inserting the following line in your `.vimrc`:

```vim
let g:airline_theme = 'catppuccin_mocha'
```
Expand All @@ -65,6 +73,10 @@ let g:airline_theme = 'catppuccin_mocha'

A: For better syntax highlighting you should download plugins that allow you to see all color groups for each language in question.

## Contributing

This color plugin is developed with [lifepillar/vim-colortemplate](https://github.com/lifepillar/vim-colortemplate/).

## 💝 Thanks to

- [M3nny](https://github.com/M3nny)
Expand Down
130 changes: 130 additions & 0 deletions autoload/airline/themes/catppuccin.vim
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
let g:airline#themes#catppuccin#palette = {}

if &background == 'dark'
let s:rosewater = "#F5E0DC"
let s:flamingo = "#F2CDCD"
let s:pink = "#F5C2E7"
let s:mauve = "#CBA6F7"
let s:red = "#F38BA8"
let s:maroon = "#EBA0AC"
let s:peach = "#FAB387"
let s:yellow = "#F9E2AF"
let s:green = "#A6E3A1"
let s:teal = "#94E2D5"
let s:sky = "#89DCEB"
let s:sapphire = "#74C7EC"
let s:blue = "#89B4FA"
let s:lavender = "#B4BEFE"
"
let s:text = "#CDD6F4"
let s:subtext1 = "#BAC2DE"
let s:subtext0 = "#A6ADC8"
let s:overlay2 = "#9399B2"
let s:overlay1 = "#7F849C"
let s:overlay0 = "#6C7086"
let s:surface2 = "#585B70"
let s:surface1 = "#45475A"
let s:surface0 = "#313244"
"
let s:base = "#1E1E2E"
let s:mantle = "#181825"
let s:crust = "#11111B"
else
let s:rosewater = "#dc8a78"
let s:flamingo = "#DD7878"
let s:pink = "#ea76cb"
let s:mauve = "#8839EF"
let s:red = "#D20F39"
let s:maroon = "#E64553"
let s:peach = "#FE640B"
let s:yellow = "#df8e1d"
let s:green = "#40A02B"
let s:teal = "#179299"
let s:sky = "#04A5E5"
let s:sapphire = "#209FB5"
let s:blue = "#1e66f5"
let s:lavender = "#7287FD"
"
let s:text = "#4C4F69"
let s:subtext1 = "#5C5F77"
let s:subtext0 = "#6C6F85"
let s:overlay2 = "#7C7F93"
let s:overlay1 = "#8C8FA1"
let s:overlay0 = "#9CA0B0"
let s:surface2 = "#ACB0BE"
let s:surface1 = "#BCC0CC"
let s:surface0 = "#CCD0DA"
"
let s:base = "#EFF1F5"
let s:mantle = "#E6E9EF"
let s:crust = "#DCE0E8"
endif

function! airline#themes#catppuccin#refresh()
" Normal mode
" (Dark)
let s:N1 = [ s:mantle, s:blue, 59, 149 ] " guifg guibg ctermfg ctermbg
let s:N2 = [ s:blue, s:surface0, 149, 59 ] " guifg guibg ctermfg ctermbg
let s:N3 = [ s:text, s:mantle, 145, 16 ] " guifg guibg ctermfg ctermbg

" Insert mode
let s:I1 = [ s:mantle, s:teal, 59, 74 ] " guifg guibg ctermfg ctermbg
let s:I2 = [ s:teal, s:surface0, 74, 59 ] " guifg guibg ctermfg ctermbg
let s:I3 = [ s:text, s:mantle, 145, 16 ] " guifg guibg ctermfg ctermbg

" Visual mode
let s:V1 = [ s:mantle, s:mauve, 59, 209 ] " guifg guibg ctermfg ctermbg
let s:V2 = [ s:mauve, s:surface0, 209, 59 ] " guifg guibg ctermfg ctermbg
let s:V3 = [ s:text, s:mantle, 145, 16 ] " guifg guibg ctermfg ctermbg

" Replace mode
let s:R1 = [ s:mantle, s:red, 59, 203 ] " guifg guibg ctermfg ctermbg
let s:R2 = [ s:red, s:surface0, 203, 59 ] " guifg guibg ctermfg ctermbg

" Command mode
let s:C1 = [ s:base, s:peach, 59, 166 ] " guifg guibg ctermfg ctermbg
let s:C2 = [ s:peach, s:surface0, 166, 59 ] " guifg guibg ctermfg ctermbg

" Warning section
let s:WR = [s:mantle, s:peach, 232, 166 ]

" Error section
let s:ER = [s:mantle, s:red, 232, 166 ]


let g:airline#themes#catppuccin#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)

let g:airline#themes#catppuccin#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)

let g:airline#themes#catppuccin#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)

let s:IA = [ s:N1[1], s:N3[1], s:N1[3], s:N3[3], '' ]
let g:airline#themes#catppuccin#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)

let g:airline#themes#catppuccin#palette.normal.airline_warning = s:WR
let g:airline#themes#catppuccin#palette.insert.airline_warning = s:WR
let g:airline#themes#catppuccin#palette.visual.airline_warning = s:WR

let g:airline#themes#catppuccin#palette.normal.airline_warning_to_airline_error = s:WR
let g:airline#themes#catppuccin#palette.insert.airline_warning_to_airline_error = s:WR
let g:airline#themes#catppuccin#palette.visual.airline_warning_to_airline_error = s:WR

let g:airline#themes#catppuccin#palette.normal.airline_error = s:ER
let g:airline#themes#catppuccin#palette.insert.airline_error = s:ER
let g:airline#themes#catppuccin#palette.visual.airline_error = s:ER

" Fork replace mode from insert mode
let g:airline#themes#catppuccin#palette.replace = copy(g:airline#themes#catppuccin#palette.insert)
let g:airline#themes#catppuccin#palette.replace.airline_a = [ s:R1[0], s:R1[1], s:R1[2], s:R1[3], '' ]
let g:airline#themes#catppuccin#palette.replace.airline_b = [ s:R2[0], s:R2[1], s:R2[2], s:R2[3], '' ]

" Terminal mode is same as insert mode
let g:airline#themes#catppuccin#palette.terminal = copy(g:airline#themes#catppuccin#palette.insert)

" Fork command mode from normal mode
let g:airline#themes#catppuccin#palette.commandline = copy(g:airline#themes#catppuccin#palette.normal)
let g:airline#themes#catppuccin#palette.commandline.airline_a = [ s:C1[0], s:C1[1], s:C1[2], s:C1[3], '' ]
let g:airline#themes#catppuccin#palette.commandline.airline_b = [ s:C2[0], s:C2[1], s:C2[2], s:C2[3], '' ]
endfunction

call airline#themes#catppuccin#refresh()
80 changes: 80 additions & 0 deletions autoload/lightline/colorscheme/catppuccin.vim
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
if &background == 'dark'
let s:rosewater = "#F5E0DC"
let s:flamingo = "#F2CDCD"
let s:pink = "#F5C2E7"
let s:mauve = "#CBA6F7"
let s:red = "#F38BA8"
let s:maroon = "#EBA0AC"
let s:peach = "#FAB387"
let s:yellow = "#F9E2AF"
let s:green = "#A6E3A1"
let s:teal = "#94E2D5"
let s:sky = "#89DCEB"
let s:sapphire = "#74C7EC"
let s:blue = "#89B4FA"
let s:lavender = "#B4BEFE"
"
let s:text = "#CDD6F4"
let s:subtext1 = "#BAC2DE"
let s:subtext0 = "#A6ADC8"
let s:overlay2 = "#9399B2"
let s:overlay1 = "#7F849C"
let s:overlay0 = "#6C7086"
let s:surface2 = "#585B70"
let s:surface1 = "#45475A"
let s:surface0 = "#313244"
"
let s:base = "#1E1E2E"
let s:mantle = "#181825"
let s:crust = "#11111B"
else
let s:rosewater = "#dc8a78"
let s:flamingo = "#DD7878"
let s:pink = "#ea76cb"
let s:mauve = "#8839EF"
let s:red = "#D20F39"
let s:maroon = "#E64553"
let s:peach = "#FE640B"
let s:yellow = "#df8e1d"
let s:green = "#40A02B"
let s:teal = "#179299"
let s:sky = "#04A5E5"
let s:sapphire = "#209FB5"
let s:blue = "#1e66f5"
let s:lavender = "#7287FD"
"
let s:text = "#4C4F69"
let s:subtext1 = "#5C5F77"
let s:subtext0 = "#6C6F85"
let s:overlay2 = "#7C7F93"
let s:overlay1 = "#8C8FA1"
let s:overlay0 = "#9CA0B0"
let s:surface2 = "#ACB0BE"
let s:surface1 = "#BCC0CC"
let s:surface0 = "#CCD0DA"
"
let s:base = "#EFF1F5"
let s:mantle = "#E6E9EF"
let s:crust = "#DCE0E8"
endif

let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:mantle, s:blue ], [ s:blue, s:base ] ]
let s:p.normal.middle = [ [ s:blue, s:mantle ] ]
let s:p.normal.right = [ [ s:overlay0, s:base ], [ s:blue, s:surface0 ] ]
let s:p.insert.left = [ [ s:mantle, s:teal ], [ s:blue, s:base ] ]
let s:p.visual.left = [ [ s:mantle, s:mauve ], [ s:blue, s:base ] ]
let s:p.replace.left = [ [ s:mantle, s:red ], [ s:blue, s:base ] ]

let s:p.inactive.left = [ [ s:blue, s:base ], [ s:overlay0, s:base ] ]
let s:p.inactive.middle = [ [ s:surface1, s:base ] ]
let s:p.inactive.right = [ [ s:surface1, s:base ], [ s:overlay0, s:base ] ]

let s:p.tabline.left = [ [ s:overlay0, s:base ], [ s:overlay0, s:base ] ]
let s:p.tabline.tabsel = [ [ s:blue, s:surface1 ], [ s:overlay0, s:base] ]
let s:p.tabline.middle = [ [ s:surface1, s:base ] ]
let s:p.tabline.right = copy(s:p.inactive.right)
let s:p.normal.error = [ [ s:mantle, s:red ] ]
let s:p.normal.warning = [ [ s:mantle, s:yellow ] ]

let g:lightline#colorscheme#catppuccin#palette = lightline#colorscheme#fill(s:p)
Loading