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

Omarchy reminder show: always shows 'No outstanding reminders' on systems that have been suspended

Reported by jasonzondor · filed May 11, 2026Closed upstream on 2026-05-11 by its own reporter jasonzondor. GitHub close reason: completed. Closed by its own reporter — not by itself 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

Omarchy reminder show: always shows 'No outstanding reminders' on systems that have been suspendedrevision 1 · captured 2026-10-04 11:56 UTC via poll

Summary

omarchy reminder show (and the SUPER+CTRL+ALT+R keybinding) always displays "No outstanding reminders" even when active reminders exist, on any system that has been suspended since boot.

Steps to Reproduce

  1. Boot the system and suspend it at least once (close laptop lid, etc.)
  2. Set a reminder: omarchy reminder 30 "Test"
  3. Immediately run: omarchy reminder show
  4. Expected: Shows the pending reminder with time remaining
  5. Actual: Shows "No outstanding reminders"

The reminder itself fires correctly at the scheduled time — only show is broken.

Root Cause

In bin/omarchy-reminder, the show_reminders() function (line 49) reads uptime from /proc/uptime:

uptime=${SECONDS_SINCE_BOOT:-$(awk '{ print int($1) }' /proc/uptime)}

/proc/uptime reports CLOCK_BOOTTIME — time since boot, including time spent suspended.

However, NextElapseUSecMonotonic from systemd uses CLOCK_MONOTONIC — time the kernel has been actively running, excluding suspend time.

On a suspended system these two clocks diverge significantly. For example, on a laptop that has been suspended for hours:

  • CLOCK_MONOTONIC ≈ 2,501 seconds (~41 min of active runtime)
  • CLOCK_BOOTTIME / /proc/uptime ≈ 37,391 seconds (~10.4 hours since boot)

The comparison on line 50:

((next_seconds <= uptime)) && continue

...treats both as the same clock. Since the monotonic timer timestamp (e.g. ~2,560 s) is always less than the BOOTTIME uptime (e.g. ~37,391 s), every reminder is skipped as if it already elapsed.

Suggested Fix

Replace the /proc/uptime read with CLOCK_MONOTONIC:

uptime=${SECONDS_SINCE_BOOT:-$(python3 -c "import time; print(int(time.clock_gettime(time.CLOCK_MONOTONIC)))" 2>/dev/null || awk '{ print int($1) }' /proc/uptime)}

Or read from /proc/timer_list for a pure-bash solution.

Environment

  • Omarchy 3.8.0
  • Arch Linux, Hyprland
  • Framework 13 Intel Core Ultra Series 1
View raw text
## Summary

`omarchy reminder show` (and the SUPER+CTRL+ALT+R keybinding) always displays "No outstanding reminders" even when active reminders exist, on any system that has been suspended since boot.

## Steps to Reproduce

1. Boot the system and suspend it at least once (close laptop lid, etc.)
2. Set a reminder: `omarchy reminder 30 "Test"`
3. Immediately run: `omarchy reminder show`
4. **Expected:** Shows the pending reminder with time remaining
5. **Actual:** Shows "No outstanding reminders"

The reminder itself fires correctly at the scheduled time — only `show` is broken.

## Root Cause

In `bin/omarchy-reminder`, the `show_reminders()` function (line 49) reads uptime from `/proc/uptime`:

```bash
uptime=${SECONDS_SINCE_BOOT:-$(awk '{ print int($1) }' /proc/uptime)}
```

`/proc/uptime` reports **CLOCK_BOOTTIME** — time since boot, *including* time spent suspended.

However, `NextElapseUSecMonotonic` from systemd uses **CLOCK_MONOTONIC** — time the kernel has been actively running, *excluding* suspend time.

On a suspended system these two clocks diverge significantly. For example, on a laptop that has been suspended for hours:

- `CLOCK_MONOTONIC` ≈ 2,501 seconds (~41 min of active runtime)
- `CLOCK_BOOTTIME` / `/proc/uptime` ≈ 37,391 seconds (~10.4 hours since boot)

The comparison on line 50:

```bash
((next_seconds <= uptime)) && continue
```

...treats both as the same clock. Since the monotonic timer timestamp (e.g. ~2,560 s) is always less than the BOOTTIME uptime (e.g. ~37,391 s), every reminder is skipped as if it already elapsed.

## Suggested Fix

Replace the `/proc/uptime` read with `CLOCK_MONOTONIC`:

```bash
uptime=${SECONDS_SINCE_BOOT:-$(python3 -c "import time; print(int(time.clock_gettime(time.CLOCK_MONOTONIC)))" 2>/dev/null || awk '{ print int($1) }' /proc/uptime)}
```

Or read from `/proc/timer_list` for a pure-bash solution.

## Environment

- Omarchy 3.8.0
- Arch Linux, Hyprland
- Framework 13 Intel Core Ultra Series 1

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.