A soft and sweet colorscheme
With lazy.nvim:
{
'b0o/lavi.nvim',
lazy = false,
priority = 1000,
config = function()
vim.cmd.colorscheme 'lavi'
end,
},With Nix flakes (see Nix section for more options):
programs.neovim.plugins = [
inputs.lavi.packages.${pkgs.system}.lavi-nvim
];Alacritty
Alacritty: Cross-platform, GPU-accelerated terminal emulator
- Copy
contrib/alacritty/lavi.tomlto~/.config/alacritty/lavi.toml - Import into your Alacritty config:
general.import = [ "~/.config/alacritty/lavi.toml", ]
Bottom
Bottom: Graphical process/system monitor for the terminal
- Copy the contents of
contrib/bottom/lavi.tomlinto your~/.config/bottom/bottom.toml
Btop
Btop: Resource monitor with a customizable interface
- Copy
contrib/btop/lavi.themeto~/.config/btop/themes/lavi.theme - Set
color_theme = "lavi"in your~/.config/btop/btop.confor select it from the options menu
Clipse
Clipse: Configurable TUI clipboard manager for Unix
- Copy
contrib/clipse/lavi.jsonto~/.config/clipse/custom_theme.json - Set
"themeFile": "custom_theme.json"in your~/.config/clipse/config.json
Dank Material Shell
Dank Material Shell: Desktop shell for wayland compositors
- Copy
contrib/dank-material-shell/lavi.jsonto~/.config/DankMaterialShell/themes/lavi.json - In Settings → Theme & Colors, select Custom and set the theme file path to the copied file
- Alternatively, set
"currentThemeName": "custom"and"customThemeFile": "/path/to/lavi.json"in~/.config/DankMaterialShell/settings.json
Nix/Home-Manager:
Requires the DMS home-manager module from the DMS flake:
# flake.nix inputs:
inputs.dms.url = "github:AvengeMedia/DankMaterialShell/stable";
# home-manager config:
imports = [
inputs.dms.homeModules.dank-material-shell
inputs.lavi.homeManagerModules.lavi
];
lavi.dank-material-shell.enable = true;This writes the theme file to ~/.config/DankMaterialShell/themes/lavi.json and sets programs.dank-material-shell.settings to use it as the active custom theme.
Foot
Foot: Fast, lightweight Wayland terminal emulator
- Copy the contents of
contrib/foot/lavi.iniinto your~/.config/foot/foot.ini
Ghostty
Ghostty: Fast, native terminal emulator with platform-native UI
- Copy
contrib/ghostty/lavi.confto~/.config/ghostty/themes/lavi.conf - Set
theme = lavi.confin your~/.config/ghostty/config
Kitty
Kitty: GPU-accelerated terminal emulator
- Copy the contents of
contrib/kitty/lavi.confinto your~/.config/kitty/themes/lavi.conf - Run
kitty +kitten themes --reload-in=all lavito set the theme
Opencode
Opencode: TUI for coding with LLMs from the terminal
- Copy
contrib/opencode/lavi.jsonto~/.config/opencode/themes/lavi.json - Set
{ "theme": "lavi" }in your~/.config/opencode/opencode.jsoncor select it from the UI theme picker
Wezterm
Wezterm: GPU-accelerated terminal emulator and multiplexer
- Copy
contrib/wezterm/lavi.tomlto~/.config/wezterm/colors/lavi.toml - Set
config.color_scheme = "lavi"in your Wezterm config
Windows Terminal
Windows Terminal: Modern terminal application for Windows
- Open the Windows Terminal settings (
ctrl+,) - Select Open JSON file at the bottom left corner (
ctrl+shift+,) - Copy the contents of
contrib/windows_terminal/lavi.jsoninside of theschemesarray - Save and exit
- In the Settings panel under Profiles, select the profile you want to use the theme in, then select Appearance and choose lavi from the Color scheme dropdown
Zellij
Zellij: Terminal workspace and multiplexer
- Copy
contrib/zellij/lavi.kdlto~/.config/zellij/themes/lavi.kdl - Set
theme "lavi"in your~/.config/zellij/config.kdl
Lavi provides a Nix flake with multiple outputs for flexible integration.
| Output | Description |
|---|---|
packages.<system>.lavi-nvim |
Minimal Neovim plugin (runtime only, no lush dependency) |
packages.<system>.lavi-nvim-dev |
Full Neovim plugin with lush sources for customization |
packages.<system>.lavi-themes |
All theme files from contrib/ |
lib.themes.<app> |
Raw theme content as strings (e.g., lib.themes.ghostty) |
lib.base16 |
Base16 color scheme for Stylix integration |
homeManagerModules.lavi |
Home-manager module with per-app options |
Add to your flake inputs:
inputs.lavi.url = "github:b0o/lavi.nvim";Import and configure:
{ inputs, pkgs, ... }:
{
imports = [ inputs.lavi.homeManagerModules.lavi ];
lavi = {
neovim.enable = true; # Adds lavi-nvim to programs.neovim.plugins
ghostty.enable = true; # Configures programs.ghostty.themes.lavi
alacritty.enable = true; # Merges colors into programs.alacritty.settings
kitty.enable = true; # Appends to programs.kitty.extraConfig
foot.enable = true; # Merges into programs.foot.settings
btop.enable = true; # Writes theme file and sets color_theme
bottom.enable = true; # Merges styles into programs.bottom.settings
clipse.enable = true; # Merges theme into services.clipse.theme
dank-material-shell.enable = true; # Configures programs.dank-material-shell custom theme
opencode.enable = true; # Configures programs.opencode.themes.lavi
wezterm.enable = true; # Writes theme to wezterm/colors/
zellij.enable = true; # Configures programs.zellij.themes.lavi
};
}Lavi provides a base16 color scheme for Stylix:
{ inputs, ... }:
{
stylix.base16Scheme = inputs.lavi.lib.base16;
}This applies the Lavi color palette across all Stylix-supported programs automatically.
For users who manage their own config files:
# Symlink theme files
home.file.".config/ghostty/themes/lavi.conf".source =
"${inputs.lavi.packages.${pkgs.system}.lavi-themes}/ghostty/lavi.conf";
# Or use raw content
xdg.configFile."ghostty/themes/lavi.conf".text = inputs.lavi.lib.themes.ghostty;For contributing or modifying themes:
nix develop github:b0o/lavi.nvim
lavi-build # Generate themes and formatTo verify committed theme files match what would be generated:
nix flake checkThis runs automatically in CI. On pushes to main, themes are auto-regenerated and committed if needed. PRs will fail if themes are out of date.
This colorscheme is built with Lush.nvim, ensure you have it installed.
Themes are generated from the palette and highlight definitions in lua/lush_theme/lavi/.
The files in contrib/, nix/themes/, colors/, and lua/lavi/ are automatically generated - don't edit them directly.
Re-generate themes and format with:
MIT License

{ "schemes": [ // paste the contents of lavi.json here ], }