# MacBook Pro — NixOS / Asahi Linux (macbook-pro-nixos) `systems/aarch64-linux/macbook-pro-nixos/` ## Hardware - **Device**: Apple Silicon MacBook Pro (M-series) - **OS**: NixOS via [Asahi Linux](https://asahilinux.org/) (`nixos-apple-silicon`) - **Boot**: Asahi boot chain (not traditional EFI) ## Key Features - Asahi Linux kernel with full Apple Silicon support (sound, GPU, etc.) - GNOME as the primary desktop; Hyprland available but disabled - x86_64 emulation via binfmt (enables running x86 binaries) - Waydroid and libvirtd available (Waydroid disabled by default) - Battery management — charge threshold set via `macsmc-battery` - Omnissa Horizon client (custom package) for remote desktop - Distrobox for containerised Linux environments - iwd as the Wi-Fi backend ## x86_64 Emulation ```nix nix.settings.extra-platforms = [ "x86_64-linux" ]; boot.binfmt.emulatedSystems = [ "x86_64-linux" ]; ``` This allows building and running x86_64 packages on the ARM host. ## Asahi Hardware The Asahi hardware module provides: - Firmware loading from `./firmware/` - Sound setup (`setupAsahiSound = true`) - Apple-specific kernel patches and device drivers Useful packages installed: `asahi-bless`, `asahi-btsync`, `asahi-nvram`, `asahi-wifisync`, `apfs-fuse`, `apfsprogs`, `muvm`, `fex` ## Network - **Hostname**: macbook-pro-nixos - **Wi-Fi backend**: iwd (via NetworkManager) - Firewall: extra rules for multicast (ports 1990, 2021) ## Battery Management ```nix mjallen.hardware.battery = { enable = true; chargeLimitPath = "/sys/class/power_supply/macsmc-battery/charge_control_end_threshold"; }; ``` ## Configuration Files | File | Purpose | |---|---| | `default.nix` | Main config — Asahi hardware, users, network | | `boot.nix` | Asahi boot configuration | | `filesystems.nix` | Disk layout | | `hardware-configuration.nix` | Generated hardware config | | `services.nix` | logind, GDM, GNOME, Flatpak, power settings | | `firmware/` | Asahi firmware blobs | ## Secrets Secrets are in `secrets/mac-secrets.yaml`, encrypted for: `matt`, `matt_pi5`, `desktop`, `pi5`, `admin`, `jallen-nas`, `matt_macbook-pro`, `macbook-pro`.