{ description = "NixOS Flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; home-manager.url = "github:nix-community/home-manager/release-24.05"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; helix.url = "github:helix-editor/helix/master"; hyprland.url = "github:hyprwm/Hyprland"; utils.url = "github:gytis-ivaskevicius/flake-utils-plus"; agenix.url = "github:ryantm/agenix"; zen-browser.url = "github:MarceColl/zen-browser-flake"; }; outputs = { self, nixpkgs, utils, home-manager, helix, hyprland, agenix, ... }@inputs: utils.lib.mkFlake { inherit self inputs; channelsConfig.allowUnfree = true; hostDefaults.modules = [ home-manager.nixosModules.home-manager agenix.nixosModules.default { environment.systemPackages = [ agenix.packages."x86_64-linux".default ]; age.secrets.ghostnet-cert.file = ./secrets/ghostnet-cert.age; age.secrets.ghostnet-key.file = ./secrets/ghostnet-key.age; age.secrets.ghostnet-ca.file = ./secrets/ghostnet-ca.age; age.secrets.ghostnet-tls-auth.file = ./secrets/ghostnet-tls-auth.age; age.secrets.ghostnet-auth-user-pass.file = ./secrets/ghostnet-auth-user-pass.age; age.secrets.systems-cert.file = ./secrets/systems-cert.age; age.secrets.systems-key.file = ./secrets/systems-key.age; age.secrets.systems-ca.file = ./secrets/systems-ca.age; age.secrets.systems-tls-auth.file = ./secrets/systems-tls-auth.age; } ./config/shared.nix ]; hosts.work.modules = [ { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.jras = import ./home-manager/entrypoints/personal.nix; home-manager.extraSpecialArgs = { inherit inputs; }; } ./hosts/work.nix ]; hosts.tarrel.modules = [ home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.jras = import ./home-manager/entrypoints/personal.nix; home-manager.extraSpecialArgs = { inherit inputs; }; } ./hosts/tarrel.nix ]; }; }