{
  description = "A simple flake for a nix-shell";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    home-manager.url = "github:nix-community/home-manager/master";
    home-manager.inputs.nixpkgs.follows = "nixpkgs";
    catppuccin.url = "github:catppuccin/nix";
    spicetify-nix = {
      url = "github:Gerg-L/spicetify-nix";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = { nixpkgs, home-manager, catppuccin, spicetify-nix, ... } @ inputs: let
    lib = nixpkgs.lib;
    system = "x86_64-linux";
    pkgs = nixpkgs.legacyPackages.${system};
    catppuccinFlavor = "macchiato";
  in {
    nixosConfigurations = {
      hp-laptop-lho = lib.nixosSystem {
          inherit system;
          specialArgs = {
            inherit catppuccinFlavor;
          };
          modules = [ 
            ./configuration.nix
            catppuccin.nixosModules.catppuccin
          ];
      };
    };
    homeConfigurations = {
      lorenz = home-manager.lib.homeManagerConfiguration {
          inherit pkgs;
          extraSpecialArgs = { 
            inherit inputs;
            inherit catppuccinFlavor;
          };
          modules = [ 
            ./home.nix
            catppuccin.homeManagerModules.catppuccin
          ];
      };
    };
  };
}