# Apple Mac Pro 3,1 (Early 2008, dual Xeon Harpertown, x86_64). Desktop host: # shared graphical/wired options live in ../../modules/desktop.nix; only # host-specific settings are here. { ... }: { imports = [ ./hardware-configuration.nix ]; # The Mac Pro 3,1 has 64-bit EFI (confirmed by the owner), so boot via # systemd-boot like the MBP -- no GRUB/BIOS shim needed. boot.loader.systemd-boot.enable = true; # Apple's EFI does not reliably support efibootmgr NVRAM writes; leave the # firmware vars untouched. boot.loader.efi.canTouchEfiVariables = false; # Apple-EFI quirk: if the Mac does not pick up the bootloader at the boot # picker, install it to the fallback path \EFI\BOOT\BOOTX64.EFI and/or # "bless" the ESP from macOS. Uncomment to write the removable fallback path: # boot.loader.efi.efiInstallAsRemovable = true; networking.hostName = "MacPro31-NixOS"; # This host accepts SSH, so open 22 (the firewall itself is enabled in # workstation.nix with a default-deny policy). services.openssh.enable = true; networking.firewall.allowedTCPPorts = [ 22 ]; services.pipewire = { enable = true; pulse.enable = true; }; # No fingerprint hardware; empty service still lets swaylock authenticate via # password. security.pam.services.swaylock = { }; # Dual Harpertown Xeon microcode + redistributable firmware (e.g. GPU/NIC # blobs). hardware.cpu.intel.updateMicrocode = true; hardware.enableRedistributableFirmware = true; # GPU note: the stock card varies between units -- ATI Radeon HD 2600 XT or # NVIDIA GeForce 8800 GT. Sway needs a working KMS/modesetting driver; do NOT # install a proprietary blob here. Depending on the installed card, rely on # the open kernel driver: # - ATI Radeon HD 2600 XT -> "radeon" (older) or "amdgpu" KMS # - NVIDIA GeForce 8800 GT -> "nouveau" KMS # These come up automatically via the in-tree drivers + KMS, and the graphics # stack itself is enabled by swaywm.nix. If a card needs to be forced, add it # here, e.g. `services.xserver.videoDrivers = [ "radeon" ];` (or "nouveau"), # and/or `boot.initrd.kernelModules = [ "radeon" ];` in # hardware-configuration.nix for early KMS. # See `man configuration.nix` / the stateVersion docs before changing. system.stateVersion = "26.05"; }