{ description = "My common nixos system"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; home-manager.url = "github:nix-community/home-manager/release-25.05"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions"; nix-vscode-extensions.inputs.nixpkgs.follows = "nixpkgs"; treefmt-nix.url = "github:numtide/treefmt-nix"; treefmt-nix.inputs.nixpkgs.follows = "nixpkgs"; musnix.url = "github:musnix/musnix"; musnix.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = inputs: let inherit (inputs.nixpkgs) lib; mkNixosSystems = lib.mapAttrs ( name: modules: lib.nixosSystem { modules = [ inputs.musnix.nixosModules.musnix ] ++ modules ++ [ { imports = [ (import "${inputs.home-manager}/nixos") ]; networking.hostName = name; nixpkgs.overlays = [ inputs.nix-vscode-extensions.overlays.default ]; } ]; specialArgs = { inherit inputs; }; } ); in { formatter.x86_64-linux = inputs.treefmt-nix.lib.mkWrapper (import inputs.nixpkgs { system = "x86_64-linux"; }) { projectRootFile = "flake.nix"; programs = { nixfmt.enable = true; black.enable = true; }; settings.formatter.black.options = [ "--line-length" "79" ]; }; nixosConfigurations = mkNixosSystems { polysaa = [ ./machines/polysaa ./profiles/graphical ]; mynspiron = [ ./machines/mynspiron ./profiles/graphical ]; myssian = [ ./machines/myssian ./profiles/graphical ]; }; }; }