Skip to content

fedesapuppo/t2-mac-customizations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

T2 MacBook Extra Customizations for Omarchy

Additional tweaks and configurations for running Omarchy on a MacBook with T2 chip — beyond what Omarchy ships out of the box.

Warning — Suspend/Wake is broken. T2 Macs only support s2idle (no S3 deep sleep). Waking from suspend frequently results in a black screen with an unresponsive keyboard, requiring a hard reboot. This is a known issue with no reliable fix — see Open Issues for details. If you rely on suspend, be aware that you may lose unsaved work.

Prerequisites

Omarchy's installer auto-detects T2 hardware and handles the basics:

  • T2 kernel (linux-t2) + headers
  • apple-bce driver (keyboard, trackpad, storage)
  • WiFi/Bluetooth firmware (apple-bcm-firmware) + Bluetooth driver (hci_bcm4377)
  • Audio routing (apple-t2-audio-config)
  • Fan daemon (t2fanrd) with default config
  • Boot parameters (intel_iommu=on iommu=pt pcie_ports=compat)
  • Kernel module configs (initramfs, modprobe, modules-load)
  • F-key behavior (hid_apple fnmode=2)
  • USB autosuspend disable

Install Omarchy first, then run this setup for the extras.

Quick Start

git clone https://github.com/fedesapuppo/t2-mac-customizations.git
cd t2-mac-customizations
bash setup.sh

The setup script walks you through every step interactively — it explains what each component does, asks before installing anything, and lets you skip what you don't need. Safe to re-run.

What This Repo Adds

Custom Fan Curve

Omarchy installs t2fanrd with its default config. This repo provides a custom fan curve optimized for the MacBook Air.

  • etc/t2fand.conf — linear fan curve from 55°C to 75°C. Fans stay off below 55°C and ramp linearly to full speed at 75°C.

Power Profiles (auto-switch on AC plug/unplug)

Automatically switches to performance on AC and power-saver on battery. Also plays plug/unplug sounds. Without this, the system stays on whatever profile was last set manually.

WiFi

Keyboard Backlight Step Size

The T2 MacBook Air has 512 brightness levels for keyboard backlight (apple::kbd_backlight). Omarchy's default script steps by 1 unit (~0.2% — invisible).

Copy to ~/.local/share/omarchy/bin/omarchy-brightness-keyboard to override the default. Change the divisor from 10 to 20 for 5% steps if 10% feels too coarse.


Screen Reader with Natural Voice (Orca + Piper TTS)

Omarchy does not ship with a screen reader. For accessibility, you need to install Orca separately (sudo pacman -S orca). Orca's default TTS engine is espeak-ng, which produces a robotic, hard-to-understand voice. I replaced it with Piper, a fast neural TTS engine that produces a natural human voice — a much better experience for extended use.

Note: The piper-tts AUR package currently fails to build due to an espeak-ng phoneme compilation bug. The setup script downloads the prebuilt binary from GitHub releases instead.

Requirements

  • orca — install with sudo pacman -S orca
  • speech-dispatcher (comes with orca)
  • Internet connection (for initial download of piper binary + voice model)

Setup

bash usr/local/bin/setup-orca-piper.sh

The script:

  1. Downloads the piper binary to ~/.local/bin/piper-tts
  2. Downloads shared libraries to ~/.local/share/piper-tts/lib/
  3. Downloads the en_US-lessac-medium voice model to ~/.local/share/piper-tts/voices/
  4. Configures speech-dispatcher to use piper as the default module (requires sudo)
  5. Restarts speech-dispatcher and plays a test sentence

After setup, Orca will automatically use the natural piper voice. Test manually with:

spd-say -o piper-tts "hello world"

F3 toggle keybinding

Press F3 to start Orca, press F3 again to quit it. The setup script adds this binding to Hyprland automatically. To add it manually, append to ~/.config/hypr/bindings.conf:

bindd = , F3, Toggle Orca screen reader, exec, omarchy-toggle-orca

Config files


Cross-Reference with Upstream

Sources:

Feature Status
Custom fan curve Done
WiFi resume hook (reload brcmfmac after suspend) Done
Keyboard backlight 10% step size Done
Auto power profile (performance/power-saver) Done
Natural voice screen reader (Orca + Piper TTS) Done
Suspend/wake black screen fix Not solved (open issue)

Open Issues

Suspend/wake black screen

This is the big unsolved issue. After suspending via s2idle (the only option — T2 Macs lack ACPI S3 deep sleep), waking results in a black screen with unresponsive keyboard. Hard reboot is the only recovery.

Why it's broken (multiple layers):

  1. The apple-bce driver cannot cleanly suspend/resume. This reverse-engineered driver (keyboard, trackpad, internal USB/PCIe) does not handle power state transitions properly. Suspend works fine when apple-bce is not loaded — the driver itself is the primary culprit.
  2. s2idle is inherently fragile. Unlike S3 (where hardware manages power-down), s2idle requires every driver to correctly freeze and thaw. One misbehaving driver breaks the entire chain.
  3. macOS Sonoma firmware regression. A T2 firmware update bundled with Sonoma made suspend worse, even for users who previously had it partially working. The T2 firmware is only updatable through macOS and Apple controls it.
  4. The T2 chip is a black box. Apple has never published documentation for its power management interface. Proper suspend/resume would require understanding undocumented firmware-level transitions.

Known workaround (partial): The t2linux wiki documents a systemd service that force-unloads apple-bce before suspend and reloads it after wake. This helps some users but results in ~30 second resume times and does not work reliably across suspend cycles.

Honest prognosis: This is unlikely to be fully fixed. The T2 chip is undocumented, Apple has moved on to Apple Silicon, the apple-bce driver has no upstream maintainer investing in power management, and the developer pool working on T2 Linux is small and shrinking. The most practical alternatives are hibernate (suspend-to-disk) or simply locking the screen on lid close instead of suspending.

References:

About

Configuration files for running Omarchy (Arch Linux) on a MacBook with T2 chip

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages