{ description = "A very basic flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixos-wsl.url = "github:nix-community/NixOS-WSL/main"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; plasma-manager = { url = "github:nix-community/plasma-manager"; inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; google-cookie-retrieval = { url = "git+https://git.johnogle.info/johno/google-cookie-retrieval.git"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, nixos-wsl, ... } @ inputs: let baseModules = [ ./roles inputs.home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.sharedModules = [ inputs.plasma-manager.homeManagerModules.plasma-manager ]; home-manager.extraSpecialArgs = { globalInputs = inputs; }; } ]; in { nixosConfigurations.nix-book = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = baseModules ++ [ ./machines/nix-book/configuration.nix { home-manager.users.johno = import ./home/home-nix-book.nix; home-manager.extraSpecialArgs = { inherit system; }; } ]; }; nixosConfigurations.boxy = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = baseModules ++ [ ./machines/boxy/configuration.nix inputs.home-manager.nixosModules.home-manager { home-manager.users.johno = import ./home/home.nix; home-manager.extraSpecialArgs = { inherit system; }; } ]; }; nixosConfigurations.wixos = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = baseModules ++ [ nixos-wsl.nixosModules.default ./machines/wixos/configuration.nix inputs.home-manager.nixosModules.home-manager { home-manager.users.johno = import ./home/home.nix; home-manager.extraSpecialArgs = { inherit system; }; } ]; }; # Live USB ISO configuration nixosConfigurations.live-usb = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = baseModules ++ [ ./machines/live-usb/configuration.nix { home-manager.users.johno = import ./home/home.nix; home-manager.extraSpecialArgs = { inherit system; }; } ]; }; homeConfigurations."johno" = inputs.home-manager.lib.homeManagerConfiguration { pkgs = inputs.nixpkgs.legacyPackages."x86_64-linux"; modules = [ inputs.plasma-manager.homeManagerModules.plasma-manager ./home/home.nix ]; extraSpecialArgs = { system = "x86_64-linux"; globalInputs = inputs; }; }; }; }