2.1 KiB
Executable File
2.1 KiB
Executable File
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 (
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.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
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.