Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A 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.

Inbox
ReportR-4170GitHub issuePublicReceived

WiFi powersave udev rule fails: script in user home inaccessible to udev worker

Reported by peterberkenbosch · filed Feb 28, 2026Closed upstream on 2026-04-22 by dhh. GitHub close reason: completed. No closing PR or commit is recorded — "completed" alone is not evidence of a fix.

Received and recorded verbatim. Nothing has been checked yet.

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?
Not yet mapped to any requirement or component.
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?
Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.

Original report

WiFi powersave udev rule fails: script in user home inaccessible to udev workerrevision 1 · captured 2026-10-04 11:49 UTC via poll

Summary

The 99-wifi-powersave.rules udev rule introduced in 3.4.0 (migration 1770811646) references $HOME/.local/share/omarchy/bin/omarchy-wifi-powersave, but udev workers run as root with PrivateMounts sandboxing and cannot access user home directories. The script never executes, WiFi power-save stays enabled on AC power, and on affected MediaTek chips this leads to firmware crashes.

System Specs

  • Device: Framework 13
  • WiFi: MediaTek MT7922 (mt7921e driver)
  • Kernel: 6.18.9-arch1-2
  • Omarchy: 3.4.0

Symptoms

  1. omarchy-wifi-powersave never runs — udev can't find it
  2. WiFi power-save stays on even when plugged into AC power
  3. MT7922 firmware eventually crashes with Failed to get patch semaphore / chip reset failed
  4. WiFi interface goes DOWN and cannot recover without module reload or reboot

Root Cause

The migration 1770811646.sh sources install/config/wifi-powersave-rules.sh, which writes:

SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", RUN+="/home/<user>/.local/share/omarchy/bin/omarchy-wifi-powersave off"

Since systemd 256+, udev workers use PrivateMounts sandboxing. The path inside the user's home directory is inaccessible to the root-run udev worker, producing:

(udev-worker)[1460]: ACAD: Failed to find and pin callout binary "/home/peter/.local/share/omarchy/bin/omarchy-wifi-powersave": No such file or directory

Suggested Fix

Copy or symlink the script to a system-accessible path, and update the udev rule to reference it:

# In the migration / install script:
sudo cp "$HOME/.local/share/omarchy/bin/omarchy-wifi-powersave" /usr/local/bin/omarchy-wifi-powersave
sudo chmod 755 /usr/local/bin/omarchy-wifi-powersave

Then in the udev rule:

SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="0", RUN+="/usr/local/bin/omarchy-wifi-powersave on"
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", RUN+="/usr/local/bin/omarchy-wifi-powersave off"

Reproduction

  1. Update to Omarchy 3.4.0 on a laptop with a MediaTek WiFi chip
  2. Observe journalctl -b | grep wifi-powersave — shows the "Failed to find and pin callout binary" error
  3. WiFi power-save remains active on AC; over time the firmware may crash
View raw text
## Summary

The `99-wifi-powersave.rules` udev rule introduced in 3.4.0 (migration `1770811646`) references `$HOME/.local/share/omarchy/bin/omarchy-wifi-powersave`, but udev workers run as root with `PrivateMounts` sandboxing and cannot access user home directories. The script never executes, WiFi power-save stays enabled on AC power, and on affected MediaTek chips this leads to firmware crashes.

## System Specs

- **Device:** Framework 13
- **WiFi:** MediaTek MT7922 (`mt7921e` driver)
- **Kernel:** 6.18.9-arch1-2
- **Omarchy:** 3.4.0

## Symptoms

1. `omarchy-wifi-powersave` never runs — udev can't find it
2. WiFi power-save stays on even when plugged into AC power
3. MT7922 firmware eventually crashes with `Failed to get patch semaphore` / `chip reset failed`
4. WiFi interface goes DOWN and cannot recover without module reload or reboot

## Root Cause

The migration `1770811646.sh` sources `install/config/wifi-powersave-rules.sh`, which writes:

```
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", RUN+="/home/<user>/.local/share/omarchy/bin/omarchy-wifi-powersave off"
```

Since systemd 256+, udev workers use `PrivateMounts` sandboxing. The path inside the user's home directory is inaccessible to the root-run udev worker, producing:

```
(udev-worker)[1460]: ACAD: Failed to find and pin callout binary "/home/peter/.local/share/omarchy/bin/omarchy-wifi-powersave": No such file or directory
```

## Suggested Fix

Copy or symlink the script to a system-accessible path, and update the udev rule to reference it:

```bash
# In the migration / install script:
sudo cp "$HOME/.local/share/omarchy/bin/omarchy-wifi-powersave" /usr/local/bin/omarchy-wifi-powersave
sudo chmod 755 /usr/local/bin/omarchy-wifi-powersave
```

Then in the udev rule:
```
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="0", RUN+="/usr/local/bin/omarchy-wifi-powersave on"
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", RUN+="/usr/local/bin/omarchy-wifi-powersave off"
```

## Reproduction

1. Update to Omarchy 3.4.0 on a laptop with a MediaTek WiFi chip
2. Observe `journalctl -b | grep wifi-powersave` — shows the "Failed to find and pin callout binary" error
3. WiFi power-save remains active on AC; over time the firmware may crash

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.

No decision has been recorded yet.