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-4307GitHub issuePublicReceived

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.

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

Auto power profile switching broken on USB-C only machines on v3.6.0revision 1 · captured 2026-10-04 11:56 UTC via poll

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.

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