{ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; master.url = "github:nixos/nixpkgs/master"; stable.url = "github:nixos/nixpkgs/nixos-22.11"; unstable.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager.url = "github:nix-community/home-manager"; spicetify-nix.url = "github:the-argus/spicetify-nix"; nur.url = "github:nix-community/NUR"; nixpkgs-f2k.url = "github:moni-dz/nixpkgs-f2k"; nix-gaming.url = "github:fufexan/nix-gaming"; systems.url = "github:nix-systems/default-linux"; nix-thorium.url = "github:almahdi/nix-thorium"; nix-alien.url = "github:thiagokokada/nix-alien"; pre-commit-hooks.url = "github:cachix/git-hooks.nix"; nix-index-database = { url = "github:nix-community/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; }; pia = { url = "git+https://git.sr.ht/~rprospero/nixos-pia?ref=development"; inputs.nixpkgs.follows = "nixpkgs"; }; hyprland = { type = "git"; url = "https://github.com/hyprwm/Hyprland"; submodules = true; }; hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; inputs.hyprland.follows = "hyprland"; }; Hyprspace = { url = "github:KZDKM/Hyprspace"; inputs.hyprland.follows = "hyprland"; }; }; outputs = { self, nixpkgs, home-manager, systems, nix-index-database, pia, ... }@inputs: let inherit (self) outputs; lib = nixpkgs.lib // home-manager.lib; forAllSystems = nixpkgs.lib.genAttrs (import systems); nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; }); secrets = builtins.fromJSON (builtins.readFile "${self}/secrets/secrets.json"); system = builtins.currentSystem; in { inherit lib; packages = forAllSystems (system: { default = home-manager.defaultPackage."${system}"; }); formatter = forAllSystems (system: { default = nixpkgs.legacyPackages."${system}".nixfmt-rfc-style; }); checks = forAllSystems (system: { pre-commit-check = inputs.pre-commit-hooks.lib.${system}.run { src = ./.; hooks = { deadnix.enable = true; flake-checker.enable = true; nixfmt-rfc-style.enable = true; statix.enable = true; }; }; }); devShells = forAllSystems (system: { default = nixpkgs.legacyPackages.${system}.mkShell { inherit (self.checks.${system}.pre-commit-check) shellHook; buildInputs = self.checks.${system}.pre-commit-check.enabledPackages; }; }); nixosConfigurations.kansai = lib.nixosSystem { specialArgs = { inherit inputs outputs secrets; }; modules = [ home-manager.nixosModule pia.nixosModule nix-index-database.nixosModules.nix-index ./hosts/kansai ]; }; homeConfigurations.ebisu = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgsFor."${system}"; modules = [ ./home/ebisu ]; extraSpecialArgs = { inherit inputs outputs self system secrets ; }; }; }; }