catppuccin/nix
The soothing pastel theme - now for Nix!
Built on top of NixOS and home-manager, catppuccin/nix
allows you to easily use Catppuccin across all of your apps!
What you'll find here
You should first check out our Getting started guide. Once you're done, you can take a look at all of our available options.
Find a problem?
Feel free to open an issue!
Getting started
catppuccin/nix
supports both stable Nix and Flakes! Select one of the options below based on what you want to use.
Stable Nix
When using stable Nix, we have a couple options for installing catppuccin/nix
With npins
npins
provides a way to easily "pin" and update external dependencies for your configurations.
Assuming you have followed their getting started guide, you can run the following:
npins add --name catppuccin github catppuccin nix
And in your system configuration:
let
sources = import ./npins;
in
{
imports = [
(sources.catppuccin + "/modules/nixos")
];
# if you use home-manager
home-manager.users.pepperjack = {
imports = [
(sources.catppuccin + "/modules/home-manager")
];
};
}
or if you use a standalone installation of home-manager
let
sources = import ./npins.nix;
in
{
imports = [
(sources.catppuccin + "/modules/home-manager")
];
home.username = "pepperjack";
programs.home-manager.enable = true;
}
With channels
Nix channels provide a way for you to easily download, update, and use our modules -- though at the cost of reproducibility across machines.
To add catppuccin/nix
as a channel, you can run the following:
sudo nix-channel --add https://github.com/catppuccin/nix/archive/main.tar.gz catppuccin
sudo nix-channel --update
And in your system configuration:
{
imports = [
<catppuccin/modules/nixos>
];
# if you use home-manager
home-manager.users.pepperjack = {
imports = [
<catppuccin/modules/home-manager>
];
};
}
or if you use a standalone installation of home-manager
{
imports = [
<catppuccin/modules/home-manager>
];
home.username = "pepperjack";
programs.home-manager.enable = true;
}
Flakes
Flakes are the preferred way to to use catppuccin/nix
and will be the easiest method for those with them enabled
First, we need to add this project to our inputs so we can use it in our configurations:
{
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
catppuccin.url = "github:catppuccin/nix";
};
}
After, we can use them in a NixOS configuration like so
{
nixosConfigurations.pepperjacksComputer = {
system = "x86_64-linux";
modules = [
catppuccin.nixosModules.catppuccin
# if you use home-manager
home-manager.nixosModules.home-manager
{
# if you use home-manager
home-manager.users.pepperjack = {
imports = [
./home.nix
catppuccin.homeManagerModules.catppuccin
];
};
}
];
};
}
or if you use a standalone installation of home-manager
{
homeConfigurations.pepperjack = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
modules = [
./home.nix
catppuccin.homeManagerModules.catppuccin
];
};
}
By the end, you should have a flake.nix that looks something like this
{
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
catppuccin.url = "github:catppuccin/nix";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { nixpkgs, catppuccin, home-manager }: {
# for nixos module home-manager installations
nixosConfigurations.pepperjacksComputer = pkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
catppuccin.nixosModules.catppuccin
# if you use home-manager
home-manager.nixosModules.home-manager
{
# if you use home-manager
home-manager.users.pepperjack = {
imports = [
./home.nix
catppuccin.homeManagerModules.catppuccin
];
};
}
];
};
# for standalone home-manager installations
homeConfigurations.pepperjack = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
modules = [
./home.nix
catppuccin.homeManagerModules.catppuccin
];
};
};
}
Module Options
We provide a search engine for the different supported versions of catppuccin/nix:
If you have any issues with this documentation, don't hesitate to open an issue.
FAQ
-
Q: "How do I know what programs are supported?"
A: You can find programs supported through home-manager here, and NixOS modules here -
Q: "How do I set
catppuccin.enable
for everything I use?"
A: You can setcatppuccin.enable
globally through home-manager here, and NixOS modules here -
Q: "What versions of NixOS and home-manager are supported?"
A: We primarily support theunstable
branch, but try our best to support the current stable release. You can check if your stable release is currently supported at status.nixos.org -
Q: "How do I fix the error: ... during evaluation because the option 'allow-import-from-derivation' is disabled"
A: Some ports need to read and/or manipulate remote resources, resulting in Nix performing IFD.Disable modules that use IFD
{ catppuccin = { cava.enable = false; gh-dash.enable = false; imv.enable = false; swaylock.enable = false; mako.enable = false; }; }
Changelog
1.2.1 - 2024-12-20
π Bug Fixes
- home-manager/zed: use correct names by @isabelroses
1.2.0 - 2024-12-20
This will (hopefully) be the final release before 2.0.0. In preparation for the next major release, our
modules have been moved to a standard catppuccin
namespace (i.e., programs.bat.catppuccin.enable
is now
catppuccin.bat.enable
), but aliases to the old options remain for backwards compatibility. These will be
removed in 2.0.0
π Features
- home-manager: add transparent option for micro by @henrisota
- home-manager: add support for zed-editor by @isabelroses
- modules: move to catppuccin namespace by @isabelroses
π Documentation
- fully document nix library by @getchoo
1.1.1 - 2024-12-12
π Bug Fixes
- fix eval on 25.05 by @PerchunPak
π Documentation
- README: fix typo
catppucin
->catppuccin
by @42willow - use nuscht search for options by @getchoo
- add nicer redirects by @getchoo
- use git-cliff for release changelogs by @getchoo
1.1.0 - 2024-11-08
π Features
- home-manager: add support for fuzzel by @Anomalocaridid
- home-manager: add support for spotify-player by @w-lfchen
- home-manager: add support for hyprlock by @42willow
- home-manager: add support for freetube by @Anomalocaridid
- home-manager: add support for obs-studio by @arminius-smh
- home-manager: add support for aerc by @benjamb
- home-manager: update yazi for accent support by @uncenter
- home-manager/fcitx5: add accent support by @arminius-smh
- home-manager/fzf: add accent support by @ryanccn
- home-manager/mako: add accent color support by @SchweGELBin
- home-manager/mpv: add support for uosc by @olifloof
- nixos: add support for fcitx5 by @Zh40Le1ZOOB
π Bug Fixes
- home-manager/dunst: avoid IFD by @Anomalocaridid
- home-manager/foot: avoid IFD by @Anomalocaridid
- home-manager/gtk: support all tweaks by @isabelroses
- home-manager/hyprland: inherit cursor size, unset hyprcursor env vars by @Weathercold
- home-manager/hyprland: allow merging
sources
option by @zspher - home-manager/hyprland: import accents from file by @Weathercold
- home-manager/k9s: support darwin without XDG by @alejandro-angulo
- home-manager/kitty: use new
themeFile
option on 24.11 by @olifloof - home-manager/kvantum: don't uppercase accents and flavors in override by @ryand56
- home-manager/lazygit: avoid IFD by @Anomalocaridid
- home-manager/lazygit: support darwin without XDG by @alejandro-angulo
- home-manager/mpv: avoid IFD by @Anomalocaridid
- home-manager/tofi: avoid IFD by @Anomalocaridid
- home-manager/zathura: avoid IFD by @Anomalocaridid
π Documentation
- add IFD FAQ by @vdbe
- remove kitty from README's IFD FAQ by @vdbe
- fix invalid link by @somerand0mcat
New Contributors
- @42willow made their first contribution in #330
- @SchweGELBin made their first contribution in #323
- @Zh40Le1ZOOB made their first contribution in #221
- @alejandro-angulo made their first contribution in #311
- @arminius-smh made their first contribution in #343
- @benjamb made their first contribution in #338
- @ryand56 made their first contribution in #358
- @somerand0mcat made their first contribution in #350
- @w-lfchen made their first contribution in #296
1.0.2 - 2024-07-02
π Bug Fixes
- home-manager/cursors: exclude from
catppuccin.enable
by @getchoo
βͺ Reverted
- gtk: don't replace
normal
tweak withdefault
by @isabelroses
1.0.1 - 2024-06-30
π Bug Fixes
- home-manager/gtk: replace
normal
tweak withdefault
by @isabelroses
π Documentation
1.0.0 - 2024-06-29
π¨ Breaking Changes
- home-manager: add support for global cursors by @Weathercold
- modules: auto import modules & improve passing of arguments by @getchoo
- modules: use flavor and accent defaults from org by @uncenter
- modules: flavour -> flavor by @getchoo
- modules: bump minimum supported release to 24.05 by @getchoo
- switch to NixOS/HM modules by @Stonks3141
- move docs to website by @getchoo
π Features
- gtk: add cursor theming support by @pluiedev
- hm: micro init by @isabelroses
- home-manager: add starship theme by @Stonks3141
- home-manager: add support for kitty by @getchoo
- home-manager: add support for alacritty by @getchoo
- home-manager: add support for btop by @getchoo
- home-manager: add support for tmux by @getchoo
- home-manager: add support for sway by @getchoo
- home-manager: add support for neovim by @getchoo
- home-manager: add support for fish by @Scrumplex
- home-manager: init mako module by @Anomalocaridid
- home-manager: init hyprland module by @Anomalocaridid
- home-manager: init zathura module by @Anomalocaridid
- home-manager: init delta module by @Anomalocaridid
- home-manager: init swaylock module by @Anomalocaridid
- home-manager: init imv module by @Anomalocaridid
- home-manager: init gitui module
- home-manager: init fzf module by @Anomalocaridid
- home-manager: add support for rofi by @henrisota
- home-manager: add support for dunst by @henrisota
- home-manager: init yazi module
- home-manager: init k9s module by @bjw-s
- home-manager: init rio module by @michaelBelsanti
- home-manager: add support for cava by @henrisota
- home-manager: add support for foot by @Lichthagel
- home-manager: init fcitx5 module by @pluiedev
- home-manager: allow dark and light accents for gtk cursors by @PerchunPak
- home-manager: init mpv module by @Anomalocaridid
- home-manager: add support for skim by @Lichthagel
- home-manager: add support for zellij by @eljamm
- home-manager: add transparent option for k9s by @henrisota
- home-manager: add support for tofi by @henrisota
- home-manager: add support for gh-dash by @Lichthagel
- home-manager: add support for waybar by @Lichthagel
- home-manager: add support for zsh-syntax-highlighting by @XYenon
- home-manager: source hyprland theme and add accent colors by @Liassica
- home-manager: add
extraConfig
option for tmux by @vdbe - home-manager: add
gnomeShellTheme
option for gtk by @c-leri - home-manager: add
apply
option for fcitx5 by @Lichthagel - home-manager: add gtk icon theme by @Weathercold
- home-manager: add support for kvantum by @Lichthagel
- home-manager: add support for cava themes with transparent background by @AdrienCos
- home-manager: add support for newsboat by @Xelden
- home-manager: set hyprcursor by @isabelroses
- modules: add support for helix by @getchoo
- modules: add support for bottom by @getchoo
- modules: add support for polybar by @getchoo
- modules: add util library by @getchoo
- modules: add support for lazygit by @isabelroses
- modules: add global
enable
option by @drupol - modules: add
catppuccin.sources
option by @getchoo - modules: support nixos & home-manager's stable branches by @getchoo
- modules: add declarations by @getchoo
- modules/home-manager: add glamour by @ryanccn
- nixos: add support for grub by @getchoo
- nixos: init console module by @Anomalocaridid
- nixos: add global
accent
option by @Weathercold - nixos: add support for sddm by @isabelroses
- nixos: add support for plymouth by @Weathercold
- add flavour option to nixos module by @Stonks3141
- add flake-compat support by @getchoo
- add autogenerated docs by @getchoo
- limit use of IFD, add auto updates & vm testing by @getchoo
- add subflake for development & testing by @getchoo
π Bug Fixes
- home-manager: don't set home.activation.batCache by @getchoo
- home-manager: adopt new naming scheme for gtk theme by @getchoo
- home-manager: capitalize "Light" and "Dark" by @vgskye
- home-manager: dont declare xdg.configFile when btop isn't enabled by @getchoo
- home-manager: correctly set btop's theme by @Anomalocaridid
- home-manager: apply lazygit theme by @zspher
- home-manager: match refactors in bat source by @ryanccn
- home-manager: use correct name for gtk cursor by @Hamish-McLean
- home-manager: add file for yazi syntax highlighting by @michaelBelsanti
- home-manager: link GTK 4.0 files by @EnzioKam
- home-manager: allow overriding styles for the rofi theme by @aloop
- home-manager: properly enable gtk in vm test by @getchoo
- home-manager: use local flavour option for delta by @Lichthagel
- home-manager: make dark/light lowercase for style names in gtk by @selfuryon
- home-manager: capitalize gtkTheme by @c-leri
- home-manager: remove xdg.enable assertions by @getchoo
- home-manager: gtk cursors are now lowercase by @isabelroses
- home-manager: use correct gtk theme name by @eljamm
- home-manager: assert
qt.style.name
for kvantum theme by @getchoo - home-manager: don't let swaylock cause infinite recursion by @getchoo
- home-manager: assert
qt.platformTheme.name
for kvantum by @olifloof - home-manager: only enable pointerCursor by default on linux by @XYenon
- home-manager/bat: use attrset for theme specification by @ryanccn
- home-manager/sway: avoid IFD by @Scrumplex
- modules: vendor our own revision of nixpkgs by @getchoo
- modules: pass version to mkOptionDoc correctly by @getchoo
- modules: shorten defaultText for
catppuccin.sources
by @getchoo - nixos: sddm package not being installed by @Weathercold
- nixos: use the qt 6 version of sddm by @isabelroses
- import bat.nix by @Stonks3141
- donβt enable bat by @Stonks3141
- set correct path for modules by @getchoo
π Documentation
- fix README header by @Stonks3141
- begin contributing guidelines by @Stonks3141
- fix copyright year in README by @Stonks3141
- complete readme template by @getchoo
- clean up contributing guidelines by @Stonks3141
- fix info for
revert
commits by @Stonks3141 - add
nixos
andhome-manager
scopes by @Stonks3141 - add link to nixos modules by @getchoo
- add instructions for maintainers by @Stonks3141
- specify stance on unofficial ports by @getchoo
- correct use of
modules
overimports
by @getchoo - cleanup CONTRIBUTING.md by @getchoo
- update link to
catppuccin.enable
by @getchoo
New Contributors
- @AdrienCos made their first contribution in #191
- @Anomalocaridid made their first contribution in #95
- @EnzioKam made their first contribution in #114
- @Hamish-McLean made their first contribution in #106
- @Liassica made their first contribution in #80
- @Lichthagel made their first contribution in #175
- @PerchunPak made their first contribution in #116
- @Scrumplex made their first contribution in #59
- @Weathercold made their first contribution in #195
- @XYenon made their first contribution in #248
- @Xelden made their first contribution in #217
- @aloop made their first contribution in #123
- @bjw-s made their first contribution in #110
- @c-leri made their first contribution in #161
- @drupol made their first contribution in #124
- @eljamm made their first contribution in #239
- @getchoo made their first contribution in #256
- @henrisota made their first contribution in #131
- @isabelroses made their first contribution in #230
- @michaelBelsanti made their first contribution in #119
- @olifloof made their first contribution in #245
- @pluiedev made their first contribution in #128
- @ryanccn made their first contribution in #91
- @selfuryon made their first contribution in #147
- @sgoudham made their first contribution in #201
- @uncenter made their first contribution in #145
- @vdbe made their first contribution in #137
- @vgskye made their first contribution
- @zspher made their first contribution in #76
Contributing
catppuccin/nix
is an open source, MIT licensed project. Contributions - including bug reports, feature requests, and improvements - can be made on our GitHub repository.
If you are interested in hacking away at our modules, make sure to read our Contributing guidelines