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

4.0.2: bar tooltip renders raw HTML — Text.PlainText on tooltipLabel breaks rich-text tooltips

Reported by Balthazzahr · filed Sep 3, 2026 · open at source

Decided: Out of scope — decided by agents · verified 3 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

4.0.2: bar tooltip renders raw HTML — Text.PlainText on tooltipLabel breaks rich-text tooltipsrevision 1 · captured 2026-09-28 21:24 UTC via poll

Summary

Since omarchy 4.0.2-1, the shared bar tooltip renders its text as plain text only. Any widget that passes rich HTML (e.g. the custom.sysmon plugin) now shows the raw markup — <font ...>, <b>, &nbsp;, <br/> — as a single unwrapped line of "code" instead of a formatted multi-line box. This is a silent regression from 4.0.1, where the tooltip label used the default Text.AutoText and rendered rich text correctly.

Environment

  • omarchy: 4.0.2-1 (built 2026-08-31, installed 2026-09-02)
  • shell branch: quattro
  • quickshell: current packaged build
  • kernel: 7.1.9-arch1-2

Reproduction

  1. Have any bar widget/plugin set tooltipText (or call bar.showTooltip(target, text)) with a rich-text string, e.g. "<font color='#ff5555'><b>CPU</b></font>&nbsp;&nbsp;48.0°C<br/>..." (this is exactly what custom.sysmon's Widget.qml does via its formattedTooltip).
  2. Hover the widget.

Actual: the tooltip shows the raw markup literally, all on one line (the <br/> separators render as literal text, so it never wraps into rows).

Expected (4.0.1 behavior): the rich text is rendered — colored, bolded, multi-line, space-aligned box.

Root cause

Single-line change between omarchy-4.0.1-1 and omarchy-4.0.2-1 in shell/plugins/bar/Bar.qml (the tooltipLabel Text inside the tooltipWindow PopupWindow, ~line 1108):

 Text {
   id: tooltipLabel
+  textFormat: Text.PlainText
   anchors.centerIn: parent
   text: root.tooltipText

Confirmed by diffing the two package tarballs from /var/cache/pacman/pkg. Forcing Text.PlainText is almost certainly a deliberate hardening against the known quickshell rich-text rendering crashes (e.g. #9302, #9269, #8676 — SIGSEGV in QQuickTextPrivate::updateLayout with HTML text), but it silently breaks any existing rich-text tooltip usage with no warning.

Suggested fix options

  1. Drop textFormat: Text.PlainText (restore default Text.AutoText) now that the underlying quickshell crashes are addressed, or
  2. Scope the hardening instead of applying it globally, e.g. only force plain text for tooltips that are known-safe, or
  3. If plain-text-only tooltips are now an intentional contract, document it in shell/plugins/bar/README.md (bar.showTooltip) so plugin authors don't build rich-text tooltips that silently degrade.

Workaround (user-side)

Patch the custom plugin to emit plain text (monospace space-padded columns, \n line breaks) — this is what I've applied locally; it renders correctly under Text.PlainText but loses per-cell color coding.

View raw text
## Summary

Since omarchy `4.0.2-1`, the shared bar tooltip renders its text as **plain text only**. Any widget that passes rich HTML (e.g. the `custom.sysmon` plugin) now shows the raw markup — `<font ...>`, `<b>`, `&nbsp;`, `<br/>` — as a single unwrapped line of "code" instead of a formatted multi-line box. This is a silent regression from 4.0.1, where the tooltip label used the default `Text.AutoText` and rendered rich text correctly.

## Environment

- omarchy: 4.0.2-1 (built 2026-08-31, installed 2026-09-02)
- shell branch: `quattro`
- quickshell: current packaged build
- kernel: 7.1.9-arch1-2

## Reproduction

1. Have any bar widget/plugin set `tooltipText` (or call `bar.showTooltip(target, text)`) with a rich-text string, e.g. `"<font color='#ff5555'><b>CPU</b></font>&nbsp;&nbsp;48.0°C<br/>..."` (this is exactly what `custom.sysmon`'s `Widget.qml` does via its `formattedTooltip`).
2. Hover the widget.

**Actual:** the tooltip shows the raw markup literally, all on one line (the `<br/>` separators render as literal text, so it never wraps into rows).

**Expected (4.0.1 behavior):** the rich text is rendered — colored, bolded, multi-line, space-aligned box.

## Root cause

Single-line change between `omarchy-4.0.1-1` and `omarchy-4.0.2-1` in `shell/plugins/bar/Bar.qml` (the `tooltipLabel` `Text` inside the `tooltipWindow` `PopupWindow`, ~line 1108):

```diff
 Text {
   id: tooltipLabel
+  textFormat: Text.PlainText
   anchors.centerIn: parent
   text: root.tooltipText
```

Confirmed by diffing the two package tarballs from `/var/cache/pacman/pkg`. Forcing `Text.PlainText` is almost certainly a deliberate hardening against the known quickshell rich-text rendering crashes (e.g. #9302, #9269, #8676 — SIGSEGV in `QQuickTextPrivate::updateLayout` with HTML text), but it silently breaks any existing rich-text tooltip usage with no warning.

## Suggested fix options

1. Drop `textFormat: Text.PlainText` (restore default `Text.AutoText`) now that the underlying quickshell crashes are addressed, or
2. Scope the hardening instead of applying it globally, e.g. only force plain text for tooltips that are known-safe, or
3. If plain-text-only tooltips are now an intentional contract, document it in `shell/plugins/bar/README.md` (`bar.showTooltip`) so plugin authors don't build rich-text tooltips that silently degrade.

## Workaround (user-side)

Patch the custom plugin to emit plain text (monospace space-padded columns, `\n` line breaks) — this is what I've applied locally; it renders correctly under `Text.PlainText` but loses per-cell color coding.

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 10:39 UTC