79 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  description = "My common nixos system";
 | 
						|
 | 
						|
  inputs = {
 | 
						|
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
 | 
						|
    nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
 | 
						|
 | 
						|
    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;
 | 
						|
            pkgs-unstable = import inputs.nixpkgs-unstable { system = "x86_64-linux"; };
 | 
						|
          };
 | 
						|
        }
 | 
						|
      );
 | 
						|
    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
 | 
						|
        ];
 | 
						|
      };
 | 
						|
    };
 | 
						|
}
 |