{ description = "A very basic flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixos-wsl.url = "github:nix-community/NixOS-WSL/main"; nix-darwin = { url = "github:nix-darwin/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs"; }; 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 nixosModules = [ ./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; }; } ]; darwinModules = [ ./roles/darwin.nix ] ++ [ inputs.home-manager.darwinModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = { globalInputs = inputs; }; } ]; in { nixosConfigurations.nix-book = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = nixosModules ++ [ ./machines/nix-book/configuration.nix { home-manager.users.johno = { imports = [ ./home/home-laptop-compact.nix ]; # Machine-specific overrides home.i3_sway.extraSwayConfig = { output.eDP-1.scale = "1.75"; }; }; home-manager.extraSpecialArgs = { inherit system; }; } ]; }; nixosConfigurations.boxy = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = nixosModules ++ [ ./machines/boxy/configuration.nix inputs.home-manager.nixosModules.home-manager { home-manager.users.johno = import ./home/home-media-center.nix; home-manager.extraSpecialArgs = { inherit system; }; } ]; }; nixosConfigurations.wixos = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = nixosModules ++ [ nixos-wsl.nixosModules.default ./machines/wixos/configuration.nix inputs.home-manager.nixosModules.home-manager { home-manager.users.johno = import ./home/home-desktop.nix; home-manager.extraSpecialArgs = { inherit system; }; } ]; }; nixosConfigurations.zix790prors = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = nixosModules ++ [ ./machines/zix790prors/configuration.nix inputs.home-manager.nixosModules.home-manager { home-manager.users.johno = import ./home/home-desktop.nix; home-manager.extraSpecialArgs = { inherit system; }; } ]; }; # Live USB ISO configuration nixosConfigurations.live-usb = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = nixosModules ++ [ ./machines/live-usb/configuration.nix { home-manager.users.nixos = import ./home/home-live-usb.nix; home-manager.extraSpecialArgs = { inherit system; }; } ]; }; # Darwin/macOS configurations darwinConfigurations.johno-macbookpro = inputs.nix-darwin.lib.darwinSystem rec { system = "aarch64-darwin"; modules = darwinModules ++ [ ./machines/johno-macbookpro/configuration.nix { home-manager.users.johno = import ./home/home-darwin-work.nix; home-manager.extraSpecialArgs = { inherit system; }; } ]; }; }; }