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

Quickshell repeatedly SIGSEGVs in QML binding evaluation after keyboard-panel config updates

Reported by nkamenar · filed Sep 2, 2026 · open at source

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

Quickshell repeatedly SIGSEGVs in QML binding evaluation after keyboard-panel config updatesrevision 1 · captured 2026-09-28 21:24 UTC via poll

What happened

The Omarchy shell's quickshell process crashed three times with SIGSEGV on 2026-09-01:

  • 16:29:29 EDT
  • 21:41:22 EDT
  • 21:42:32 EDT

The latter two crashes have effectively identical Qt/QML stacks. Quickshell restarted automatically after each crash, and no user-data loss was observed.

Trigger and timeline

Before the 21:42:32 crash, the Quickshell log recorded the Omarchy keyboard-panel layers opening and closing:

openlayer>>omarchy-keyboard-panel-dismiss
openlayer>>omarchy-keyboard-panel
closelayer>>omarchy-keyboard-panel-dismiss
closelayer>>omarchy-keyboard-panel

The shell then repeatedly saved and reloaded the Omarchy configuration:

21:42:20 save ~/.config/omarchy/shell.json
21:42:22 save and reload
21:42:24 save and reload
21:42:27 save and reload
21:42:29 save and reload
21:42:32 SIGSEGV

The resulting shell.json remains valid. There are no user-installed Omarchy shell plugins.

The evidence establishes the keyboard-panel/config-update sequence immediately before the crash, but does not identify which individual setting or QML expression is responsible.

Expected behavior

Changing shell/bar settings through the shipped keyboard panel should update shell.json without terminating and restarting Quickshell.

Actual behavior

Quickshell crashes on its main GUI thread while Qt is updating an animation and reevaluating a QML binding.

Relevant stack

The first two frames below are Quickshell's crash handler re-raising the original SIGSEGV. The relevant fault begins inside libQt6Qml:

raise
quickshell crash handler
<signal handler called>
libQt6Qml.so.6
JIT-generated QML code
QV4::Runtime::CallQmlContextPropertyLookup::call
JIT-generated QML code
QV4::Runtime::CallPropertyLookup::call
JIT-generated QML code
QQmlJavaScriptExpression::evaluate
QQmlBinding::evaluate
QQmlBinding::doUpdate
QQmlBinding::update
QQmlNotifier::emitNotify
QQmlPropertyPrivate::write
QQmlPropertyPrivate::writeValueProperty
libQt6Quick.so.6
QAbstractAnimationJob::setCurrentTime
QQmlAnimationTimer::updateAnimationsTime
QUnifiedTimer::updateAnimationTimers

The 21:41:22 and 21:42:32 crashes have the same relevant stack shape and offsets. The JIT-generated frames could not be resolved to a specific QML source expression.

Quickshell's report for the second crash is retained at:

~/.cache/quickshell/crashes/41z4xcrpkt/report.txt

The preceding matching report is retained at:

~/.cache/quickshell/crashes/41z4p3rpkt/report.txt

Causes ruled out

  • Approximately 86 GiB RAM was available.
  • Swap was unused.
  • No OOM kill occurred.
  • No contemporaneous NVIDIA XID or GPU-reset error was found.
  • The crash occurs on the GUI/QML thread, not the render thread.

System details

  • Omarchy 4.0.2-1
  • Linux 7.1.9-arch1-2
  • Quickshell 0.3.1-1
  • Qt Base 6.11.2-2
  • Qt Declarative 6.11.2-1
  • Qt Wayland 6.11.2-1
  • NVIDIA driver 610.57.04
  • NVIDIA GeForce RTX 4080
  • Intel Core i9-14900K
  • Three monitors under Wayland/Hyprland
  • Shell config: /usr/share/omarchy/shell/shell.qml
  • No user shell plugins

omarchy debug --no-sudo --print was attempted, but Omarchy 4.0.2 reports that this command does not exist.

Duplicate search

This differs from:

  • #8488: Mesa dri2_query_image crash on the render thread when a keyboard panel opens.
  • #7098: menu typing enters through QQuickKeysAttached and QQmlListModel::append.
  • #9647: PipeWire device teardown enters through an audio-panel QQuickRepeater.
  • #8730: Wi-Fi disablement and access-point object teardown.

None has this animation-timer/property-write stack combined with repeated shell.json updates.

Filed by GPT-5 via Codex.

View raw text
## What happened

The Omarchy shell's `quickshell` process crashed three times with SIGSEGV on 2026-09-01:

- 16:29:29 EDT
- 21:41:22 EDT
- 21:42:32 EDT

The latter two crashes have effectively identical Qt/QML stacks. Quickshell restarted automatically after each crash, and no user-data loss was observed.

## Trigger and timeline

Before the 21:42:32 crash, the Quickshell log recorded the Omarchy keyboard-panel layers opening and closing:

```text
openlayer>>omarchy-keyboard-panel-dismiss
openlayer>>omarchy-keyboard-panel
closelayer>>omarchy-keyboard-panel-dismiss
closelayer>>omarchy-keyboard-panel
```

The shell then repeatedly saved and reloaded the Omarchy configuration:

```text
21:42:20 save ~/.config/omarchy/shell.json
21:42:22 save and reload
21:42:24 save and reload
21:42:27 save and reload
21:42:29 save and reload
21:42:32 SIGSEGV
```

The resulting `shell.json` remains valid. There are no user-installed Omarchy shell plugins.

The evidence establishes the keyboard-panel/config-update sequence immediately before the crash, but does not identify which individual setting or QML expression is responsible.

## Expected behavior

Changing shell/bar settings through the shipped keyboard panel should update `shell.json` without terminating and restarting Quickshell.

## Actual behavior

Quickshell crashes on its main GUI thread while Qt is updating an animation and reevaluating a QML binding.

## Relevant stack

The first two frames below are Quickshell's crash handler re-raising the original SIGSEGV. The relevant fault begins inside `libQt6Qml`:

```text
raise
quickshell crash handler
<signal handler called>
libQt6Qml.so.6
JIT-generated QML code
QV4::Runtime::CallQmlContextPropertyLookup::call
JIT-generated QML code
QV4::Runtime::CallPropertyLookup::call
JIT-generated QML code
QQmlJavaScriptExpression::evaluate
QQmlBinding::evaluate
QQmlBinding::doUpdate
QQmlBinding::update
QQmlNotifier::emitNotify
QQmlPropertyPrivate::write
QQmlPropertyPrivate::writeValueProperty
libQt6Quick.so.6
QAbstractAnimationJob::setCurrentTime
QQmlAnimationTimer::updateAnimationsTime
QUnifiedTimer::updateAnimationTimers
```

The 21:41:22 and 21:42:32 crashes have the same relevant stack shape and offsets. The JIT-generated frames could not be resolved to a specific QML source expression.

Quickshell's report for the second crash is retained at:

```text
~/.cache/quickshell/crashes/41z4xcrpkt/report.txt
```

The preceding matching report is retained at:

```text
~/.cache/quickshell/crashes/41z4p3rpkt/report.txt
```

## Causes ruled out

- Approximately 86 GiB RAM was available.
- Swap was unused.
- No OOM kill occurred.
- No contemporaneous NVIDIA XID or GPU-reset error was found.
- The crash occurs on the GUI/QML thread, not the render thread.

## System details

- Omarchy 4.0.2-1
- Linux 7.1.9-arch1-2
- Quickshell 0.3.1-1
- Qt Base 6.11.2-2
- Qt Declarative 6.11.2-1
- Qt Wayland 6.11.2-1
- NVIDIA driver 610.57.04
- NVIDIA GeForce RTX 4080
- Intel Core i9-14900K
- Three monitors under Wayland/Hyprland
- Shell config: `/usr/share/omarchy/shell/shell.qml`
- No user shell plugins

`omarchy debug --no-sudo --print` was attempted, but Omarchy 4.0.2 reports that this command does not exist.

## Duplicate search

This differs from:

- #8488: Mesa `dri2_query_image` crash on the render thread when a keyboard panel opens.
- #7098: menu typing enters through `QQuickKeysAttached` and `QQmlListModel::append`.
- #9647: PipeWire device teardown enters through an audio-panel `QQuickRepeater`.
- #8730: Wi-Fi disablement and access-point object teardown.

None has this animation-timer/property-write stack combined with repeated `shell.json` updates.

Filed by GPT-5 via Codex.

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:33 UTC