{ description = "NixOS configuration with Home Manager"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/23.11"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; apple-silicon = { url = "github:tpwrules/nixos-apple-silicon"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; home-manager = { url = "github:nix-community/home-manager/release-23.11"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager-unstable = { url = "github:nix-community/home-manager"; #/release-23.11"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; emacs-config = { url = "git+https://git.marq42.xyz/mir/emacs?ref=main"; flake = false; }; }; outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, home-manager, ... }: { nixosConfigurations = { galvatron = nixpkgs.lib.nixosSystem { system = "aarch64-linux"; # specialArgs = { inherit nixpkgs-unstable; }; modules = [ ./configuration.nix { # nixpkgs.overlays = [ inputs.apple-silicon.overlays.apple-silicon-overlay ]; hardware.asahi = { peripheralFirmwareDirectory = ./galvatron/firmware; # useExperimentalGPUDriver = true; # experimentalGPUInstallMode = "driver"; # experimentalGPUInstallMode = "overlay"; }; boot.loader.efi.canTouchEfiVariables = false; networking.hostName = "galvatron"; sound.enable = false; } ./galvatron/hardware-configuration.nix inputs.apple-silicon.nixosModules.apple-silicon-support home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.mir = import ./home.nix; } ]; }; starscream = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ ./configuration.nix { networking.hostName = "starscream"; boot.loader.efi.canTouchEfiVariables = true; sound.enable = true; } ./hardware/starscream-hw.nix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.mir = import ./home.nix; # Optionally, use home-manager.extraSpecialArgs to pass arguments to home.nix } ]; }; knockout = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ ./configuration.nix { networking.hostName = "knockout"; boot.loader.efi.canTouchEfiVariables = true; sound.enable = true; } ./hardware/knockout-hw.nix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.mir = import ./home.nix; # Optionally, use home-manager.extraSpecialArgs to pass arguments to home.nix } ]; }; }; }; }