{ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; # required for home-manager modules nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; get-flake.url = "github:ursi/get-flake"; disko.inputs.nixpkgs.follows = "nixpkgs"; home-manager = { url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; }; nixos-x13s.url = # "git+https://forgejo.www.stefanjunker.de/steveej/nixos-x13s.git?branch=remaintain" "/home/steveej/src/others/nixos-x13s" # ; # nixos-x13s.url = "git+https://codeberg.org/adamcstephens/nixos-x13s?ref=refs/tags/2024-02-28"; # nixos-x13s.url = "path:/home/steveej/src/others/nixos-x13s"; # nixos-x13s.inputs.nixpkgs.follows = "nixpkgs"; mycelium.url = "github:threefoldtech/mycelium"; nix-snapshotter = { url = "github:yu-re-ka/nix-snapshotter"; # url = "github:pdtpartners/nix-snapshotter"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, get-flake, nixpkgs, ... }: let nativeSystem = "aarch64-linux"; nodeName = "steveej-x13s"; pkgs = nixpkgs.legacyPackages.${nativeSystem}; pkgsCross = import self.inputs.nixpkgs { system = "x86_64-linux"; crossSystem = { config = "aarch64-unknown-linux-gnu"; }; }; repoFlake = get-flake ../../../..; mkNixosConfiguration = {extraModules ? [], ...} @ attrs: nixpkgs.lib.nixosSystem ( nixpkgs.lib.attrsets.recursiveUpdate attrs { specialArgs = (import ./default.nix { system = nativeSystem; inherit nodeName; inherit repoFlake; repoFlakeWithSystem = repoFlake.lib.withSystem; nodeFlake = self; }) .meta .nodeSpecialArgs .${nodeName}; modules = [ ./configuration.nix # flake registry { nixpkgs.overlays = builtins.attrValues self.overlays; nix.registry.nixpkgs.flake = nixpkgs; } ] ++ extraModules; } ); in { lib = { inherit mkNixosConfiguration; }; overlays = {}; nixosConfigurations = { native = mkNixosConfiguration { system = nativeSystem; }; cross = mkNixosConfiguration { extraModules = [ { nixpkgs.buildPlatform.system = "x86_64-linux"; nixpkgs.hostPlatform.system = nativeSystem; } ]; }; }; }; }