From dfc436802ddbd4477011d675fc9a54c6e987e1a1 Mon Sep 17 00:00:00 2001 From: Emma Thorpe Date: Thu, 4 Jun 2026 15:22:07 +0100 Subject: [PATCH] refactor(nixos): declare bootloader per-host, not in workstation.nix The bootloader is firmware-specific, not form-factor: UEFI hosts use systemd-boot, BIOS hosts use GRUB. Drop boot.loader.systemd-boot.enable from workstation.nix and declare it on the MBP instead, so the incoming BIOS-only T400 (GRUB) doesn't have to force it off. Co-Authored-By: Claude Opus 4.8 (1M context) --- system/machine/MBP-Asahi/configuration.nix | 4 +++- system/modules/workstation.nix | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/system/machine/MBP-Asahi/configuration.nix b/system/machine/MBP-Asahi/configuration.nix index 07bbb62..24dad33 100644 --- a/system/machine/MBP-Asahi/configuration.nix +++ b/system/machine/MBP-Asahi/configuration.nix @@ -7,7 +7,9 @@ ./hardware-configuration.nix ]; - # Asahi manages the EFI vars from macOS; do not touch them from NixOS. + # UEFI boot via systemd-boot. Asahi manages the EFI vars from macOS, so do not + # touch them from NixOS. + boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = false; networking.hostName = "Emma-Asahi"; diff --git a/system/modules/workstation.nix b/system/modules/workstation.nix index dc7366f..96da265 100644 --- a/system/modules/workstation.nix +++ b/system/modules/workstation.nix @@ -1,10 +1,12 @@ # Form-factor-agnostic base for the physical graphical NixOS machines. Imported # by both ./laptop.nix and ./desktop.nix; those add only the bits that differ # between portable and desktop hosts (chiefly the networking backend). +# +# The bootloader is NOT set here -- it is firmware-specific, not form-factor: +# UEFI hosts (MBP, Mac Pro 3,1) use systemd-boot, the BIOS-only T400 uses GRUB. +# Each machine config declares its own. { ... }: { - boot.loader.systemd-boot.enable = true; - features.swayDesktop.enable = true; console.keyMap = "dvorak";