{ description = "Lauren's Example Stub Flake"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager.url = "github:nix-community/home-manager/release-24.05"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; nixos-generators.url = "github:nix-community/nixos-generators"; nixos-generators.inputs.nixpkgs.follows = "nixpkgs"; # Extras waveforms.url = "github:liff/waveforms-flake"; }; outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, nixos-generators, waveforms, ... }@inputs: let system = "x86_64-linux"; timezone = "America/Chicago"; locale = "en_US.UTF-8"; unstable = nixpkgs-unstable.legacyPackages.${system}; iso_modules = [ "${nixpkgs}/nixos/modules/installer/cd-dvd/iso-image.nix" { isoImage.squashfsCompression = "zstd"; } ]; # Look into: https://git.sr.ht/~magic_rb/dotfiles/tree/master/item/nixos/systems/gooseberry pi_modules = [{ # Disabling the whole `profiles/base.nix` module, which is responsible # for adding ZFS and a bunch of other unnecessary programs: disabledModules = [ "profiles/base.nix" ]; }]; # TODO: Surely a better way, no? inherited_modules = [ { time.timeZone = timezone; } home-manager.nixosModules.home-manager waveforms.nixosModule ]; in { nixosConfigurations = { ll-nixos-headless = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = iso_modules ++ [ ./nixos/systems/ll-nixos-headless.nix ] ++ inherited_modules; specialArgs = { unstable = unstable; }; }; }; packages.aarch64-linux = { ll-nixos-headless-pi-sdcard = nixos-generators.nixosGenerate { system = "aarch64-linux"; format = "sd-aarch64"; modules = pi_modules ++ [ ./nixos/systems/ll-nixos-headless.nix ] ++ inherited_modules; specialArgs = { unstable = unstable; }; }; }; packages.x86_64-linux = { ll-nixos-headless-iso = nixos-generators.nixosGenerate { system = "x86_64-linux"; modules = iso_modules ++ [ ./nixos/systems/ll-nixos-headless.nix ] ++ inherited_modules; format = "install-iso"; specialArgs = { unstable = unstable; }; }; }; }; }