{ config, lib, namespace, pkgs, system, ... }: let inherit (lib.${namespace}) mkOpt; cfg = config.${namespace}.system; isArm = system == "aarch64-linux"; in { options.${namespace}.system = { timezone = mkOpt lib.types.str "America/Chicago" "System timezone (e.g. \"America/New_York\")."; stateVersion = mkOpt lib.types.str "23.11" "NixOS state version. Should match the version in use when the system was first installed."; }; config = { environment.systemPackages = with pkgs; [ brightnessctl dconf disko kdiskmark nil nix-output-monitor nixos-anywhere udisks2 unzip ] ++ ( if isArm then [ ] else [ acpilight aha aspell aspellDicts.en aspellDicts.en-computers aspellDicts.en-science ddcui ddcutil ddccontrol ddccontrol-db efibootmgr memtest86-efi memtest86plus os-prober sbctl tpm2-tools tpm2-tss winetricks ] ); time.timeZone = cfg.timezone; system.stateVersion = cfg.stateVersion; }; }