๐ Gruvbox baby!
My variation of the gruvbox theme with full support for treesitter!
๐ค Why?
I wasn't comfortable with the gruvbox themes out there, either they didn't have good treesitter support or if they do, I didn't like their colors on python and javascript/typescript files.
๐ธ Pretty pictures
Font: Jetbrains Mono patched with nerd fonts
Terminal: wezterm https://github.com/wez/wezterm
๐ Lua
๐ Python
โ๏ธ React with typescript
๐ Telescope
inspired by https://github.com/NvChad/NvChad (You have to enable it via config variable)
โ๏ธ Installation
Plug 'luisiacc/gruvbox-baby', {'branch': 'main'}
...
colorscheme gruvbox-baby
๐ช Configuration
โ๏ธ configuration needs to be set BEFORE loading the color scheme withcolorscheme gruvbox-baby
Option | Default | Available options |
---|---|---|
background_color | medium |
medium , dark |
transparent_mode | false |
false , true - sets background colors to None |
comment_style | italic |
see :h attr-list |
keyword_style | italic |
see :h attr-list |
string_style | nocombine |
see :h attr-list |
function_style | bold |
see :h attr-list |
variable_style | NONE |
see :h attr-list |
highlights | {} |
override highlights with your custom highlights |
color_overrides | {} |
override color palette with your custom colors |
use_original_palette | false |
use the original gruvbox palette |
-- Example config in Lua
vim.g.gruvbox_baby_function_style = "NONE"
vim.g.gruvbox_baby_keyword_style = "italic"
-- Each highlight group must follow the structure:
-- ColorGroup = {fg = "foreground color", bg = "background_color", style = "some_style(:h attr-list)"}
-- See also :h highlight-guifg
-- Example:
vim.g.gruvbox_baby_highlights = {Normal = {fg = "#123123", bg = "NONE", style="underline"}}
-- Enable telescope theme
vim.g.gruvbox_baby_telescope_theme = 1
-- Enable transparent mode
vim.g.gruvbox_baby_transparent_mode = 1
-- Load the colorscheme
vim.cmd[[colorscheme gruvbox-baby]]
If you enable the telescope theme, I recommend using it with this borderchars config:
telescope.setup({
defaults = {
...
borderchars = {
prompt = { "โ", " ", " ", " ", "โ", "โ", " ", " " },
results = { " " },
preview = { " " },
},
}
})
" Example config in VimScript
let g:gruvbox_baby_function_style = "NONE"
let g:gruvbox_baby_keyword_style = "italic"
" Enable telescope theme
let g:gruvbox_baby_telescope_theme = 1
" Enable transparent mode
let g:gruvbox_baby_transparent_mode = 1
" Load the colorscheme
colorscheme gruvbox-baby
If you want access to the palette you have to do this:
local colors = require("gruvbox-baby.colors").config()
vim.g.gruvbox_baby_highlights = {Normal = {fg = colors.orange}}
๐ Plugin support
- https://github.com/mhinz/vim-startify
- https://github.com/nvim-treesitter/nvim-treesitter
- https://github.com/kyazdani42/nvim-tree.lua
- https://github.com/phaazon/hop.nvim
- https://github.com/lukas-reineke/indent-blankline.nvim
- https://github.com/hrsh7th/nvim-cmp
- https://github.com/nvim-telescope/telescope.nvim
- https://github.com/nvim-lualine/lualine.nvim
enable Lualine
To enable gruvbox-baby
theme for Lualine
, simply specify it in your lualine settings:
require('lualine').setup {
options = {
-- ... your lualine config,
theme = "gruvbox-baby",
-- ... your lualine config,
}
}
๐ Palette
๐ Colors
๐ถ Medium Intensity
Color | Code | Name |
---|---|---|
#0d0e0f | dark0 | |
#202020 | dark | |
#242424 | background_dark | |
#282828 | background | |
#32302f | background_light |
๐ฑ Dark Intensity
Color | Code | Name |
---|---|---|
#0d0e0f | dark0 | |
#0d0e0f | dark | |
#171a1a | background_dark | |
#1d2021 | background | |
#32302f | background_light |
๐ฆ Soft Intensity
Color | Code | Name |
---|---|---|
#0d0e0f | dark0 | |
#202020 | dark | |
#282626 | background_dark | |
#32302f | background | |
#3c3a39 | background_light |
๐ฅฟ Soft Flat Intensity
Color | Code | Name |
---|---|---|
#0d0e0f | dark0 | |
#202020 | dark | |
#32302f | background_dark | |
#32302f | background | |
#3c3a39 | background_light |
๐ฝ Extras
- iTerm2 color theme found on extras
- tmux color themes found on extras
- bash/zsh color themes found on extras
- Windows Terminal color themes found on extras
- fzf color theme found on extras
- XCode Colorscheme color theme found on adityadaniel/gruvbox-baby-xcode
add to Windows Terminal
To add the gruvbox-baby themes to Windows Terminal run,
extras/windows_terminal/add_themes_to_windows_terminal.py $PATH_TO_WINDOWS_TERMINAL_SETTINGS_JSON
# Windows Terminal settings.json can be found at
# %LOCALAPPDATA%/Packages/Microsoft.WindowsTerminal_8wekyb3d8bbwe/LocalState/settings.json
use with fzf
To use the fzf theme append the variable/string to your FZF_DEFAULT_OPTS variable
export FZF_DEFAULT_OPTS="${FZF_DEFAULT_OPTS} ${FZF_THEME}"
#To use the fzf theme the environment variables used have to be defined.
#You can use the tmux or bash file to export them to your environment
๐ Acknowledgments
- Shutout to @ThePrimeagen for the inspiration for the plugin name, Gruvbox baby!
- I based my structure on https://github.com/folke/tokyonight.nvim (and also copied some of it)
- The all father
๐ด https://github.com/morhetz/gruvbox
Other themes I've made
The Matrix - https://github.com/luisiacc/the-matrix.nvim