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

Power panel: percentage text and progress bar disagree on dual-battery systems

Reported by dotgerph · filed Sep 12, 2026Closed upstream on 2026-09-12 by its own reporter dotgerph, as a duplicate of #6885 (R-1856). GitHub close reason: not_planned.

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

Power panel: percentage text and progress bar disagree on dual-battery systemsrevision 1 · captured 2026-10-04 12:10 UTC via poll

What happened

On a dual-battery laptop (internal + rear/slice battery, both reported by
UPower as separate BAT0/BAT1 devices), the power panel's battery
percentage text and its visual progress bar disagree — the bar fill and the
number next to it don't match.

Why

The bar's fill (shell/plugins/panels/power/Panel.qml, batteryFraction)
binds to Quickshell's UPower.displayDevice, which is UPower's own
composite device summed across every battery present — the correct
aggregate.

The percentage/rate/time text next to it instead comes from the
omarchy-battery-status script, which selects a battery with:

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

On a dual-battery system this only ever reads the first battery
(BAT0), ignoring the second. The two numbers end up describing different
things: e.g. bar fill ~62% (both batteries combined) next to text reading
~40% (BAT0 alone).

Expected

omarchy-battery-status should read the same UPower DisplayDevice
(/org/freedesktop/UPower/devices/DisplayDevice) the panel's progress bar
already uses, so the percentage text and the bar always agree, on both
single- and multi-battery systems.

Steps to reproduce

  1. Use a laptop with two batteries visible to UPower (upower -e lists

more than one battery_BAT* device — e.g. a ThinkPad with an internal +
rear/slice battery).
2. Open the power panel in the Omarchy bar.
3. Compare the percentage text to the fill level of the progress bar below
it — they read differently, because the bar aggregates both batteries and
the text only reads the first one.

System

  • Omarchy: 4.0.3-1
  • Machine: Lenovo 20F90042GE (ThinkPad T460s), Intel i5-6200U / HD Graphics 520
  • upower -e: battery_BAT0, battery_BAT1, line_power_AC
View raw text
## What happened

On a dual-battery laptop (internal + rear/slice battery, both reported by
UPower as separate `BAT0`/`BAT1` devices), the power panel's battery
percentage text and its visual progress bar disagree — the bar fill and the
number next to it don't match.

## Why

The bar's fill (`shell/plugins/panels/power/Panel.qml`, `batteryFraction`)
binds to Quickshell's `UPower.displayDevice`, which is UPower's own
composite device summed across every battery present — the correct
aggregate.

The percentage/rate/time text next to it instead comes from the
`omarchy-battery-status` script, which selects a battery with:

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

On a dual-battery system this only ever reads the first battery
(`BAT0`), ignoring the second. The two numbers end up describing different
things: e.g. bar fill ~62% (both batteries combined) next to text reading
~40% (`BAT0` alone).

## Expected

`omarchy-battery-status` should read the same UPower `DisplayDevice`
(`/org/freedesktop/UPower/devices/DisplayDevice`) the panel's progress bar
already uses, so the percentage text and the bar always agree, on both
single- and multi-battery systems.

## Steps to reproduce

1. Use a laptop with two batteries visible to UPower (`upower -e` lists
   more than one `battery_BAT*` device — e.g. a ThinkPad with an internal +
   rear/slice battery).
2. Open the power panel in the Omarchy bar.
3. Compare the percentage text to the fill level of the progress bar below
   it — they read differently, because the bar aggregates both batteries and
   the text only reads the first one.

## System

- Omarchy: 4.0.3-1
- Machine: Lenovo 20F90042GE (ThinkPad T460s), Intel i5-6200U / HD Graphics 520
- `upower -e`: `battery_BAT0`, `battery_BAT1`, `line_power_AC`

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.