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.
Auto power profile switching broken on USB-C only machines on v3.6.0
Reported by jcontonio · filed Apr 24, 2026Closed upstream on 2026-05-02 by the merge of PR #5444 (closed by dhh). GitHub close reason: completed.
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
System details
Thinkpad P14S Gen 6 Intel - Arrow Lake Ultra 7 255H
What's wrong?
The udev rule in install/config/powerprofilesctl-rules.sh matches on ATTR{type}=="Mains", which assumes the AC power supply device fires udev change events on plug/unplug. On ThinkPads and likely other USB-C only machines, the AC device never fires these events, only the ucsi-source-psy-* devices do.
Additionally, power-profiles-daemon is left in a disabled state after the update, which prevents profile switching entirely even if the udev rule matched.
Steps to reproduce
- Install or update to v3.6.0 on a USB-C only machine (e.g. Thinkpad)
- Plug or unplug the charger
- Power profile does not switch
Diagnosis
The AC device exists and reports correctly:
$ cat /sys/class/power_supply/AC/type
Mains
$ cat /sys/class/power_supply/AC/online
1But it never fires a udev change event. Only the USB-C port devices fire events:
$ udevadm monitor --property | grep -A5 "power_supply"
# Only ucsi-source-psy-USBC000:* events appear on plug/unplug
# /sys/class/power_supply/AC never appearsThe ucsi devices have POWER_SUPPLY_TYPE=USB, not Mains, so the existing rule never matches.
Also, after the update:
$ systemctl status power-profiles-daemon
... disabled ...Fix
In install/config/powerprofilesctl-rules.sh, we could add rules for USB type devices alongside the existing Mains rules, but I'm not positive if this is the best route.
# Existing Mains rules...
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="0", RUN+="..."
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", RUN+="..."
# Add USB-C support for machines where AC device doesn't fire events
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_TYPE}=="USB", ATTR{online}=="0", RUN+="..."
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_TYPE}=="USB", ATTR{online}=="1", RUN+="..."Also ensure power-profiles-daemon is enabled during install/update.
View raw text
### System details
Thinkpad P14S Gen 6 Intel - Arrow Lake Ultra 7 255H
### What's wrong?
The udev rule in `install/config/powerprofilesctl-rules.sh` matches on `ATTR{type}=="Mains"`, which assumes the `AC` power supply device fires udev `change` events on plug/unplug. On ThinkPads and likely other USB-C only machines, the `AC` device never fires these events, only the `ucsi-source-psy-*` devices do.
Additionally, `power-profiles-daemon` is left in a disabled state after the update, which prevents profile switching entirely even if the udev rule matched.
### Steps to reproduce
1. Install or update to v3.6.0 on a USB-C only machine (e.g. Thinkpad)
2. Plug or unplug the charger
3. Power profile does not switch
### Diagnosis
The `AC` device exists and reports correctly:
```
$ cat /sys/class/power_supply/AC/type
Mains
$ cat /sys/class/power_supply/AC/online
1
```
But it never fires a udev `change` event. Only the USB-C port devices fire events:
```
$ udevadm monitor --property | grep -A5 "power_supply"
# Only ucsi-source-psy-USBC000:* events appear on plug/unplug
# /sys/class/power_supply/AC never appears
```
The `ucsi` devices have `POWER_SUPPLY_TYPE=USB`, not `Mains`, so the existing rule never matches.
Also, after the update:
```
$ systemctl status power-profiles-daemon
... disabled ...
```
### Fix
In `install/config/powerprofilesctl-rules.sh`, we could add rules for USB type devices alongside the existing Mains rules, but I'm not positive if this is the best route.
```bash
# Existing Mains rules...
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="0", RUN+="..."
SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", RUN+="..."
# Add USB-C support for machines where AC device doesn't fire events
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_TYPE}=="USB", ATTR{online}=="0", RUN+="..."
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_TYPE}=="USB", ATTR{online}=="1", RUN+="..."
```
Also ensure `power-profiles-daemon` is enabled during install/update.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.