kita@nix.lembrik.eu:~$

NixOS for Apple Hardware

Kita-flavoured bootable installer ISOs and declarative hardware flakes for Apple T2 Macs (2018–2020) and Apple Silicon (M1/M2/M3).

$ cat ./breakdown.md

Ready-to-Install Apple NixOS Images

Plug-and-play installer images ready to flash and boot out-of-the-box — no need to compile custom kernels or assemble complex flakes just to get an installer running on your Mac.

  • Why not vanilla nixos-unstable: Upstream NixOS images lack Apple T2 and Asahi out-of-tree kernel modules, don't bundle non-free Broadcom Wi-Fi/BT firmware, and playing audio on raw Intel T2 hardware without calibrated PipeWire DSP curves risks physical speaker voice-coil damage.
  • What the flakes do: nixos-kait2en and nixos-apple-silicon declaratively supply the exact kernel overlays, Apple BCE bus drivers, Touch Bar daemons (tiny-dfr), and audio DSP safety limits directly into your system's configuration.nix.

KaiT2en Feature Breakdown

  • Speaker DSP Safety: Hardware-matched parametric EQ curves and multi-band loudness limiters derived from macOS. Prevents voice-coil destruction while delivering rich stereo sound.
  • Touch Bar (tiny-dfr): Rust-based daemon driving the OLED Touch Bar with Esc, full F1–F12 keys, media controls, and backlight brightness sliders.
  • Apple BCE & VHCI: Direct interface with the T2 security coprocessor for internal APFS/NVMe SSD, battery thermals, and SPI keyboard/touchpad.
  • Hybrid Dual-GPU: Automated dynamic switching between Intel UHD 630 iGPU and AMD Radeon Pro dGPU on 15" and 16" MacBook Pro models.
  • Broadcom Firmware: BCM4364 / BCM4377 wireless and Bluetooth firmware embedded on the image (no external USB dongles required).

⚠️ Essential T2 Boot Requirement:

Apple T2 blocks external operating systems by default. Before booting:

  • Hold Cmd + R on startup to enter macOS Recovery.
  • Open Utilities → Startup Security Utility.
  • Set Secure Boot to Medium Security (or No Security).
  • Set Allowed Boot Media to Allow booting from external media.
  • Reboot while holding Option (Alt) and select the EFI Boot drive.

$ ls -lh ./iso

nixos-t2-full 3.9 GB • GUI Desktop

Graphical live desktop with Calamares installer, preloaded Broadcom Wi-Fi/BT firmware, calibrated PipeWire speaker DSP, and Touch Bar controls.

Filename: nixos-t2-full-26.11.20261027.31ecbac-x86_64-linux.iso
SHA256: 883bacb812451ff1cdc6c4a74ed87b109173ab5c2a0da2b68fda431fe0d2a023
Target: MacBook Pro 13"/15"/16", Air, mini (2018–2020)
⬇ Download ISO (3.9 GB)
nixos-t2-minimal 2.1 GB • Console / Rescue

Lean terminal installer. Contains full T2 kernel patches, internal NVMe support, and automatic Broadcom firmware loader for custom dotfile setups or headless rescue.

Filename: nixos-t2-minimal-26.11.20261027.31ecbac-x86_64-linux.iso
SHA256: 3592bae66ab9c99e033b3fba280ce6939e0e8db3ac9741a3076bb0903c6d00fe
Target: Headless / Server / Minimalist installation
⬇ Download ISO (2.1 GB)

$ cat ./install-guide.md

Apple T2 (Intel) Quick Install

  1. Boot from USB: Flash the ISO to a USB flash drive (via dd or BalenaEtcher). Reboot while holding Option (Alt), and select EFI Boot.
  2. Partition disk: Split your internal SSD (/dev/nvme0n1) — on the Full GUI ISO, just launch the Calamares installer; on the Minimal ISO, partition with cgdisk /dev/nvme0n1 and format root / EFI.
  3. Install & reboot: Run nixos-install (or click Install in Calamares) and reboot into your fresh T2 NixOS system!

$ cat /etc/nixos/configuration.nix

# /etc/nixos/configuration.nix
{ config, pkgs, ... }:

{
  imports = [
    ./hardware-configuration.nix
    # KaiT2en Apple T2 hardware module (or inputs.nixos-kait2en.nixosModules.default if using flakes)
    (builtins.fetchTarball "https://github.com/gmglbn-0/nixos-kait2en/archive/main.tar.gz")
  ];

  # Enable Apple T2 features
  hardware.apple-t2 = {
    enable = true;

    # GPU power management for 15" & 16" dual-GPU: "hybrid" (Intel primary + AMD D3cold 0W sleep)
    graphics.mode = "hybrid";

    # Audio DSP: "auto" automatically loads your Mac model's calibrated EQ & protection profile
    dsp.model = "auto";

    # Broadcom Wi-Fi & Bluetooth firmware auto-download
    firmware.enable = true;

    # Touch Bar daemon (tiny-dfr) with media keys and dynamic Touch ID prompts
    touchbar.enable = true;

    # Touch ID Secure Enclave bridge for PAM & fprintd authentication
    touchid.enable = true;
  };

  # PipeWire Audio (required for calibrated speaker protection)
  services.pipewire = {
    enable = true;
    alsa.enable = true;
    pulse.enable = true;
  };

  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;
}

$ cat ./hardware-matrix

Model Chip / GPU Audio / DSP Touch Bar Status
MacBook Pro 16" (2019) Intel UHD 630 + AMD Radeon 5500M ✓ PipeWire DSP ✓ tiny-dfr ● Full
MacBook Pro 15" (2018–2019) Intel UHD 630 + AMD Radeon Pro ✓ PipeWire DSP ✓ tiny-dfr ● Full
MacBook Pro 13" (2018–2020) Intel Iris Plus Graphics ✓ PipeWire DSP ✓ tiny-dfr ● Full
MacBook Air (2018–2020) Intel Iris / UHD Graphics ✓ PipeWire DSP — Physical Keys ● Full
Mac mini (2018) Intel UHD 630 ✓ Standard PCM — N/A ● Full
Mac Pro (2019) PCIe AMD Navi / Vega ✓ Line-out PCM — N/A ● Full