diff --git a/flake.nix b/flake.nix index 3f86672..595cab9 100644 --- a/flake.nix +++ b/flake.nix @@ -135,11 +135,11 @@ enableHomeManager = false; }; - # Example: ARM64 host (e.g. Raspberry Pi 4, Apple Silicon VM) - # laptop-arm = mkNixosSystem { - # system = "aarch64-linux"; - # hostModule = ./hosts/laptop/default.nix; - # }; + # ARM64 UTM Virtual Machine (Apple Silicon) + laptop-arm = mkNixosSystem { + system = "aarch64-linux"; + hostModule = ./hosts/utm-aarch64/default.nix; + }; }; # ============================================ diff --git a/hosts/utm-aarch64/default.nix b/hosts/utm-aarch64/default.nix new file mode 100644 index 0000000..3628f5e --- /dev/null +++ b/hosts/utm-aarch64/default.nix @@ -0,0 +1,58 @@ +{ config, lib, pkgs, disko, sops-nix, ... }: + +{ + imports = [ + disko.nixosModules.disko + ]; + + # ============================================ + # Machine-Specific Configuration + # ============================================ + + networking.hostName = "mac-nix"; + networking.domain = ""; + + # Disko: Auto-partitioning configuration + disko.devices = { + disk.main = { + type = "disk"; + device = "/dev/vda"; + content = { + type = "gpt"; + partitions = { + ESP = { + size = "512M"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + }; + }; + root = { + size = "100%"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/"; + }; + }; + }; + }; + }; + }; + + # Bootloader + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + # Hardware: auto-detect + hardware.enableAllFirmware = true; + + # Enable features specific to development + custom.development.enable = true; + custom.development.languages = [ "python" "nodejs" "go" ]; + + # ssh + services.openssh.enable = lib.mkDefault false; +}