Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.
T2 MacBook Air: manual fan control disabled while t2fanrd remains active, possibly after resume
Reported by timwalex-oss · filed Sep 18, 2026 · open at source
At a glance
- 1 · What is claimed?
- Only the report text below — no validator has restated it as checkable claims yet.
- 2 · What does it affect?
- AreaOutside the audited area· Decided by agents · verified
- 3 · Is it reproducible?
- No validation has been run yet.
- 4 · What remains unclear?
- Not validated yet: no claims, no reproducer.
- 5 · What happens next?
- Decided by agents and verified by a second, independent agent — see the decision.
Original report
System details
- Omarchy:
4.0.4-1 - Hardware: Apple MacBook Air,
MacBookAir8,2 - CPU: Intel Core i5-8210Y, 2 cores / 4 threads
- GPU: Intel UHD Graphics 617,
i915 - RAM: 16 GB
- Kernel:
7.2.6-arch2-Watanare-T2-2-t2 - linux-t2 package:
7.2.6.arch2-2 - t2fanrd:
r16.48baf96-1 - Power management:
power-profiles-daemon, power-saver profile;thermaldactive - Running on battery when investigated
What's wrong?
t2fanrd.service was active, but the SMC's manual fan-control flag was disabled. The fan was running around 3,200–3,500 RPM while CPU package temperatures measured 91–96°C.
The existing /etc/t2fand.conf specifies:
[Fan1]
low_temp=55
high_temp=75
speed_curve=linear
always_full_speed=falseThe fan's reported maximum is 8,000 RPM, so the daemon's configured curve should request maximum speed above 75°C.
Observed sysfs values included:
/sys/bus/acpi/devices/APP0001:00/fan1_manual: 0
/sys/bus/acpi/devices/APP0001:00/fan1_input: 3252
/sys/bus/acpi/devices/APP0001:00/fan1_output: 3203
/sys/bus/acpi/devices/APP0001:00/fan1_max: 8000The CPU package thermal-throttling counter increased from 2,892 to 3,120 during investigation.
Observed sequence and suspected trigger
t2fanrdstarted at boot.- The machine subsequently suspended and resumed.
- No daemon restart appeared between boot and the discovery of disabled manual fan control.
- Restarting the daemon restored manual control immediately.
Suspend/resume is a suspected trigger, not a confirmed reproduction. The failure was observed and recovery verified, but another suspend/resume cycle has not been tested.
The daemon source at the packaged revision enables manual control during startup. If firmware or the driver clears that state during sleep, the running daemon appears not to reassert it.
Expected behavior
The configured fan policy should remain effective—or be restored—after resume. An active daemon should not silently remain unable to apply its cooling policy.
Verified recovery
Running:
sudo systemctl restart t2fanrd.servicechanged fan1_manual from 0 to 1, set the target to 8,000 RPM, and produced measured fan speeds around 7,900–8,100 RPM.
Throttling stopped during an initial 30-second observation, but returned during a later sample despite full fan speed. Therefore, this report concerns lost fan control, not a claim that restoring it eliminates all thermal throttling.
Local workaround
Added a oneshot systemd service that runs:
/usr/bin/systemctl try-restart t2fanrd.serviceafter the corresponding systemd sleep service completes. It is enabled for suspend, hibernate, hybrid sleep, and suspend-then-hibernate.
Systemd unit validation and manually invoking the helper passed. Automatic execution after actual resume remains untested. No fan-curve or CPU power-limit changes were made.
Omarchy integration
The installed install/hardware/apple/fix-t2.sh installs and enables t2fanrd and writes the above fan policy.
Could the T2 integration ensure that fan control is restored after resume, or coordinate an upstream daemon fix if that is the appropriate layer?
Diagnostics note
omarchy debug --no-sudo --print returned “Unknown Omarchy command” on this installation. The observations above came from systemctl, journalctl, sensors, package versions, and sysfs.
View raw text
## System details - **Omarchy:** `4.0.4-1` - **Hardware:** Apple MacBook Air, `MacBookAir8,2` - **CPU:** Intel Core i5-8210Y, 2 cores / 4 threads - **GPU:** Intel UHD Graphics 617, `i915` - **RAM:** 16 GB - **Kernel:** `7.2.6-arch2-Watanare-T2-2-t2` - **linux-t2 package:** `7.2.6.arch2-2` - **t2fanrd:** `r16.48baf96-1` - **Power management:** `power-profiles-daemon`, power-saver profile; `thermald` active - Running on battery when investigated ## What's wrong? `t2fanrd.service` was active, but the SMC's manual fan-control flag was disabled. The fan was running around **3,200–3,500 RPM** while CPU package temperatures measured **91–96°C**. The existing `/etc/t2fand.conf` specifies: ```ini [Fan1] low_temp=55 high_temp=75 speed_curve=linear always_full_speed=false ``` The fan's reported maximum is **8,000 RPM**, so the daemon's configured curve should request maximum speed above 75°C. Observed sysfs values included: ```text /sys/bus/acpi/devices/APP0001:00/fan1_manual: 0 /sys/bus/acpi/devices/APP0001:00/fan1_input: 3252 /sys/bus/acpi/devices/APP0001:00/fan1_output: 3203 /sys/bus/acpi/devices/APP0001:00/fan1_max: 8000 ``` The CPU package thermal-throttling counter increased from **2,892 to 3,120** during investigation. ## Observed sequence and suspected trigger 1. `t2fanrd` started at boot. 2. The machine subsequently suspended and resumed. 3. No daemon restart appeared between boot and the discovery of disabled manual fan control. 4. Restarting the daemon restored manual control immediately. **Suspend/resume is a suspected trigger, not a confirmed reproduction.** The failure was observed and recovery verified, but another suspend/resume cycle has not been tested. The [daemon source at the packaged revision](https://github.com/GnomedDev/t2fanrd/blob/48baf96/src/main.rs) enables manual control during startup. If firmware or the driver clears that state during sleep, the running daemon appears not to reassert it. ## Expected behavior The configured fan policy should remain effective—or be restored—after resume. An active daemon should not silently remain unable to apply its cooling policy. ## Verified recovery Running: ```bash sudo systemctl restart t2fanrd.service ``` changed `fan1_manual` from `0` to `1`, set the target to **8,000 RPM**, and produced measured fan speeds around **7,900–8,100 RPM**. Throttling stopped during an initial 30-second observation, but returned during a later sample despite full fan speed. Therefore, this report concerns **lost fan control**, not a claim that restoring it eliminates all thermal throttling. ## Local workaround Added a oneshot systemd service that runs: ```bash /usr/bin/systemctl try-restart t2fanrd.service ``` after the corresponding systemd sleep service completes. It is enabled for suspend, hibernate, hybrid sleep, and suspend-then-hibernate. Systemd unit validation and manually invoking the helper passed. **Automatic execution after actual resume remains untested.** No fan-curve or CPU power-limit changes were made. ## Omarchy integration The installed `install/hardware/apple/fix-t2.sh` installs and enables `t2fanrd` and writes the above fan policy. Could the T2 integration ensure that fan control is restored after resume, or coordinate an upstream daemon fix if that is the appropriate layer? ## Diagnostics note `omarchy debug --no-sudo --print` returned “Unknown Omarchy command” on this installation. The observations above came from `systemctl`, `journalctl`, `sensors`, package versions, and sysfs.
Validation
Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.
Linked
Not linked to any known issue, other report or change yet.
Decision
Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.
- Out of scopeDecided by agents · verified · 2026-10-09 15:22 UTC