Flakes
Flakes are the preferred way to use catppuccin/nix
and will be the easiest method for most.
First, we need to add the project to our inputs so we can use it in our configurations:
{ inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; catppuccin.url = "github:catppuccin/nix"; };}
{ inputs = { nixpkgs.url = "nixpkgs/nixos-25.05"; catppuccin.url = "github:catppuccin/nix/release-25.05"; };}
After, we can use them in a NixOS configuration like so
{ nixosConfigurations.pepperjacks-pc = { modules = [ ./configuration.nix
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.homeModules.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.homeModules.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 { modules = [ ./configuration.nix
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 ]; }; };}