{ description = "Home Manager configuration"; inputs = { flake-parts.url = "github:hercules-ci/flake-parts"; nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; fenix = { url = "github:nix-community/fenix"; inputs.nixpkgs.follows = "nixpkgs"; }; deploy-rs = { url = "github:serokell/deploy-rs"; inputs.nixpkgs.follows = "nixpkgs"; }; nur.url = "github:nix-community/NUR"; mailserver = { url = "gitlab:simple-nixos-mailserver/nixos-mailserver"; inputs.nixpkgs.follows = "nixpkgs"; }; niko-nur = { url = "github:nrabulinski/nur-packages"; inputs = { nixpkgs.follows = "nixpkgs"; flake-parts.follows = "flake-parts"; }; }; firefox-darwin = { url = "github:bandithedoge/nixpkgs-firefox-darwin"; inputs.nixpkgs.follows = "nixpkgs"; }; darwin = { url = "github:lnl7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs"; }; hyprland = { url = "github:hyprwm/Hyprland"; }; naersk = { url = "github:nix-community/naersk"; inputs.nixpkgs.follows = "nixpkgs"; }; conduit-src = { url = "gitlab:Famedly/Conduit"; flake = false; }; }; outputs = inputs @ { flake-parts, self, ... }: flake-parts.lib.mkFlake {inherit inputs;} { systems = [ "x86_64-darwin" "aarch64-darwin" "x86_64-linux" "aarch64-linux" ]; imports = [ ./flake-parts-modules ./lib ./hosts ./nixos/modules ./deploy.nix ]; perSystem = { pkgs, inputs', self', ... }: { formatter = pkgs.alejandra; devShells.default = let inherit (pkgs) age; decryptSecrets = pkgs.writeShellScriptBin "decryptSecrets" '' mkdir -p assets ${age}/bin/age -d -o assets/secret.nix secret.nix.age ''; encryptSecrets = pkgs.writeShellScriptBin "encryptSecrets" '' ${age}/bin/age -p -o secret.nix.age assets/secret.nix ''; in pkgs.mkShellNoCC { packages = with pkgs; [deploy-rs age decryptSecrets encryptSecrets]; }; checks = inputs'.deploy-rs.lib.deployChecks self.deploy; }; }; nixConfig = { extra-substituters = [ "https://hyprland.cachix.org" "https://cache.garnix.io" "https://nix-community.cachix.org" "https://cache.nixos.org/" ]; trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" ]; }; }