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

Bug: `omarchy-update-without-idle` adds `noidle` tag but never removes it

Reported by shawnyeager · filed Dec 23, 2025Closed upstream on 2025-12-24 by dhh. GitHub close reason: completed. No closing PR or commit is recorded — "completed" alone is not evidence of a fix.

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

Bug: `omarchy-update-without-idle` adds `noidle` tag but never removes itrevision 1 · captured 2026-10-04 11:49 UTC via poll

System details

AMD 7640U (Framework 13), Omarchy 3.2.3

What's wrong?

Summary

The script omarchy-update-without-idle tags the focused window with noidle to prevent idle during updates, but never removes the tag when the update completes. Combined with the window rule idleinhibit always, tag:noidle, this permanently blocks hypridle from detecting idle until the window is closed or manually untagged.

Steps to reproduce

  1. Focus a terminal window
  2. Run a command that calls omarchy-update-without-idle (or run it directly)
  3. Complete the update
  4. Leave system idle - screensaver/lock/DPMS never triggers

Expected behavior

The noidle tag should be removed when the update completes.

Actual behavior

The tag persists indefinitely, blocking all idle detection.

Affected files

  • ~/.local/share/omarchy/bin/omarchy-update-without-idle
  • ~/.local/share/omarchy/default/hypr/apps/system.conf (defines windowrule = idleinhibit always, tag:noidle)

Suggested fix

Wrap the update command and remove the tag on completion:

#!/bin/bash
hyprctl dispatch tagwindow +noidle &> /dev/null
# run update command here
# ...
hyprctl dispatch tagwindow -- -noidle &> /dev/null

Or create a corresponding omarchy-update-idle-restore script to call after updates.

Workaround

Manually remove the tag:

hyprctl dispatch tagwindow -- -noidle

Or remove from all windows:

hyprctl -j clients | jq -r '.[] | select(.tags | index("noidle")) | .address' | \
  xargs -I{} sh -c 'hyprctl dispatch focuswindow address:{} && hyprctl dispatch tagwindow -- -noidle'
View raw text
### System details

AMD 7640U (Framework 13), Omarchy 3.2.3

### What's wrong?

## Summary

The script `omarchy-update-without-idle` tags the focused window with `noidle` to prevent idle during updates, but never removes the tag when the update completes. Combined with the window rule `idleinhibit always, tag:noidle`, this permanently blocks hypridle from detecting idle until the window is closed or manually untagged.

## Steps to reproduce

1. Focus a terminal window
2. Run a command that calls `omarchy-update-without-idle` (or run it directly)
3. Complete the update
4. Leave system idle - screensaver/lock/DPMS never triggers

## Expected behavior

The `noidle` tag should be removed when the update completes.

## Actual behavior

The tag persists indefinitely, blocking all idle detection.

## Affected files

- `~/.local/share/omarchy/bin/omarchy-update-without-idle`
- `~/.local/share/omarchy/default/hypr/apps/system.conf` (defines `windowrule = idleinhibit always, tag:noidle`)

## Suggested fix

Wrap the update command and remove the tag on completion:

```bash
#!/bin/bash
hyprctl dispatch tagwindow +noidle &> /dev/null
# run update command here
# ...
hyprctl dispatch tagwindow -- -noidle &> /dev/null
```

Or create a corresponding `omarchy-update-idle-restore` script to call after updates.

## Workaround

Manually remove the tag:

```bash
hyprctl dispatch tagwindow -- -noidle
```

Or remove from all windows:

```bash
hyprctl -j clients | jq -r '.[] | select(.tags | index("noidle")) | .address' | \
  xargs -I{} sh -c 'hyprctl dispatch focuswindow address:{} && hyprctl dispatch tagwindow -- -noidle'
```

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.