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-1541GitHub issuePublicDecided· Out of scope

Power panel reports dead BAT0 (0% / 0W / Holding) on dual-battery ThinkPads

Reported by hilather · filed Aug 23, 2026 · open at source

Decided: Out of scope — decided by agents · verified 4 days ago.

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

Power panel reports dead BAT0 (0% / 0W / Holding) on dual-battery ThinkPadsrevision 1 · captured 2026-09-28 21:24 UTC via poll

System details

  • Omarchy 4.0.0-1
  • Lenovo ThinkPad T460s (20FN002KUS)
  • Dual battery: internal BAT0 (Sony 45N1111) + slice BAT1 (Sanyo 45N1775)

What's wrong?

The power widget reports 0% / 0W / Holding at 75–80% while the machine is actually charging the working pack at 99% / 2.2W / ~3 minutes to full.

This is the dual-battery head -n 1 bug (#6885, #7214, #7897), plus a second failure that DisplayDevice-based fixes do not cover: BAT0 is present but electrically dead (0 V, 0 Wh, pending-charge). UPower still counts its energy-full in the composite device, so DisplayDevice says ~49% and ~10 hours to full.

Evidence

$ upower -e | grep BAT
/org/freedesktop/UPower/devices/battery_BAT0
/org/freedesktop/UPower/devices/battery_BAT1

BAT0: present, 0 V, 0 Wh, 0%, pending-charge, energy-full 20.65 Wh
BAT1: charging, 12.3 V, 20.4 Wh, 99%, 2.2 W, ~3 min to full, energy-full 20.94 Wh
DisplayDevice: 49%, charging, 2.2 W, ~10 hours to full, energy-full 41.59 Wh

$ omarchy-battery-status --shell   # packaged
percentage  0%
state       holding
rate        0W
size        20Wh

Root cause in bin/omarchy-battery-status:

battery=$(upower -e 2>/dev/null | grep BAT | head -n 1)

Always BAT0. pending-charge on AC is treated as a charge-threshold hold. The panel icon uses UPower.displayDevice (49%), so the glyph and the numbers disagree, and both are wrong relative to the live pack.

Related PRs (#7138, #6845, #7186) switch to DisplayDevice or sum every present BAT*. On this hardware that still reports 49% / 41 Wh / 10 hours, because the dead cell's energy-full stays in the denominator.

What was expected

Follow packs that actually hold a charge (non-zero voltage/energy/current). Here that is BAT1: 99%, charging, 2.2W, 20Wh, 3m to full.

A healthy empty cell still shows voltage, so a real 0% pack is not dropped.

Steps to reproduce

  1. Dual-battery ThinkPad whose internal pack is present but at 0 V / 0 Wh.
  2. Open the power panel from the bar.
  3. Compare with upower -i on BAT1 vs DisplayDevice vs omarchy-battery-status --shell.
View raw text
### System details

- Omarchy 4.0.0-1
- Lenovo ThinkPad T460s (`20FN002KUS`)
- Dual battery: internal BAT0 (Sony 45N1111) + slice BAT1 (Sanyo 45N1775)

### What's wrong?

The power widget reports **0% / 0W / Holding at 75–80%** while the machine is actually charging the working pack at **99% / 2.2W / ~3 minutes to full**.

This is the dual-battery `head -n 1` bug (#6885, #7214, #7897), plus a second failure that DisplayDevice-based fixes do not cover: BAT0 is *present* but electrically dead (0 V, 0 Wh, `pending-charge`). UPower still counts its `energy-full` in the composite device, so DisplayDevice says ~49% and ~10 hours to full.

### Evidence

```
$ upower -e | grep BAT
/org/freedesktop/UPower/devices/battery_BAT0
/org/freedesktop/UPower/devices/battery_BAT1

BAT0: present, 0 V, 0 Wh, 0%, pending-charge, energy-full 20.65 Wh
BAT1: charging, 12.3 V, 20.4 Wh, 99%, 2.2 W, ~3 min to full, energy-full 20.94 Wh
DisplayDevice: 49%, charging, 2.2 W, ~10 hours to full, energy-full 41.59 Wh

$ omarchy-battery-status --shell   # packaged
percentage  0%
state       holding
rate        0W
size        20Wh
```

Root cause in `bin/omarchy-battery-status`:

```bash
battery=$(upower -e 2>/dev/null | grep BAT | head -n 1)
```

Always BAT0. `pending-charge` on AC is treated as a charge-threshold hold. The panel icon uses `UPower.displayDevice` (49%), so the glyph and the numbers disagree, and both are wrong relative to the live pack.

Related PRs (#7138, #6845, #7186) switch to DisplayDevice or sum every present `BAT*`. On this hardware that still reports **49% / 41 Wh / 10 hours**, because the dead cell's `energy-full` stays in the denominator.

### What was expected

Follow packs that actually hold a charge (non-zero voltage/energy/current). Here that is BAT1: 99%, charging, 2.2W, 20Wh, 3m to full.

A healthy empty cell still shows voltage, so a real 0% pack is not dropped.

### Steps to reproduce

1. Dual-battery ThinkPad whose internal pack is present but at 0 V / 0 Wh.
2. Open the power panel from the bar.
3. Compare with `upower -i` on BAT1 vs DisplayDevice vs `omarchy-battery-status --shell`.

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 08:30 UTC