{ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-old-stable.url = "github:nixos/nixpkgs/nixos-25.05"; nixpkgs-old-old-stable.url = "github:nixos/nixpkgs/nixos-24.11"; home-manager.url = "github:nix-community/home-manager/release-25.11"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; synix.url = "git+https://git.sid.ovh/sid/synix.git?ref=release-25.11"; # synix.url = "git+file:///home/sid/src/synix"; synix.inputs.nixpkgs.follows = "nixpkgs"; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; nixvim.url = "github:nix-community/nixvim/nixos-25.11"; nixvim.inputs.nixpkgs.follows = "nixpkgs"; nur.url = "github:nix-community/NUR"; nur.inputs.nixpkgs.follows = "nixpkgs"; sops-nix.url = "github:Mic92/sops-nix"; sops-nix.inputs.nixpkgs.follows = "nixpkgs"; stylix.url = "github:nix-community/stylix/release-25.11"; stylix.inputs.nixpkgs.follows = "nixpkgs"; nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest"; anyrun.url = "github:anyrun-org/anyrun"; anyrun.inputs.nixpkgs.follows = "nixpkgs"; kidex.url = "github:Kirottu/kidex"; kidex.inputs.nixpkgs.follows = "nixpkgs"; pre-commit-hooks.url = "github:cachix/git-hooks.nix"; pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs"; winapps.url = "github:winapps-org/winapps"; winapps.inputs.nixpkgs.follows = "nixpkgs"; gen-dmc.url = "github:kmein/gen-dmc/pull/3/head"; gen-dmc.inputs.nixpkgs.follows = "nixpkgs"; multios-usb.url = "github:Mexit/MultiOS-USB"; multios-usb.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { self, nixpkgs, home-manager, ... }@inputs: let inherit (self) outputs; supportedSystems = [ "x86_64-linux" ]; forAllSystems = nixpkgs.lib.genAttrs supportedSystems; lib = nixpkgs.lib.extend (final: prev: inputs.synix.lib or { }); mkNixosConfiguration = system: modules: nixpkgs.lib.nixosSystem { inherit system modules; specialArgs = { inherit inputs outputs lib; }; }; in { packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); overlays = import ./overlays { inherit inputs; }; nixosModules = import ./modules/nixos; homeModules = import ./modules/home; devShells = forAllSystems ( system: let pkgs = nixpkgs.legacyPackages.${system}; in { default = import ./shell.nix { inherit pkgs; }; kicad = pkgs.mkShell { buildInputs = [ (pkgs.python313.withPackages ( p: with p; [ kicad requests wxpython ] )) ]; }; } ); nixosConfigurations = { "16ach6" = mkNixosConfiguration "x86_64-linux" [ ./hosts/16ach6 ]; nuc8 = mkNixosConfiguration "x86_64-linux" [ ./hosts/nuc8 ]; pc = mkNixosConfiguration "x86_64-linux" [ ./hosts/pc ]; rv2 = mkNixosConfiguration "x86_64-linux" [ ./hosts/rv2 ]; }; homeConfigurations = { "sid@16ach6" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages.x86_64-linux; extraSpecialArgs = { inherit inputs outputs; }; modules = [ ./users/sid/home ./users/sid/home/hosts/16ach6 ]; }; "sid@nuc8" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages.x86_64-linux; extraSpecialArgs = { inherit inputs outputs; }; modules = [ ./users/sid/home ./users/sid/home/hosts/nuc8 ]; }; "sid@pc" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages.x86_64-linux; extraSpecialArgs = { inherit inputs outputs; }; modules = [ ./users/sid/home ./users/sid/home/hosts/pc ]; }; "sid@rv2" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages.x86_64-linux; extraSpecialArgs = { inherit inputs outputs; }; modules = [ ./users/sid/home ./users/sid/home/hosts/rv2 ]; }; }; formatter = forAllSystems ( system: let pkgs = nixpkgs.legacyPackages.${system}; config = self.checks.${system}.pre-commit-check.config; inherit (config) package configFile; script = '' ${pkgs.lib.getExe package} run --all-files --config ${configFile} ''; in pkgs.writeShellScriptBin "pre-commit-run" script ); checks = forAllSystems ( system: let pkgs = nixpkgs.legacyPackages.${system}; flakePkgs = self.packages.${system}; in { pre-commit-check = inputs.pre-commit-hooks.lib.${system}.run { src = ./.; hooks = { nixfmt.enable = true; }; }; build-packages = pkgs.linkFarm "flake-packages-${system}" flakePkgs; } ); }; }