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

Bar layer parks off-screen permanently after "omarchy toggle bar on" — inverted on/off logic in omarchy-toggle-bar

Reported by abracu · filed Sep 3, 2026Closed upstream on 2026-09-20 by bjarneo via an automated message, as a duplicate of #7022 (R-1817). GitHub close reason: completed.

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

Bar layer parks off-screen permanently after "omarchy toggle bar on" — inverted on/off logic in omarchy-toggle-barrevision 1 · captured 2026-10-04 12:10 UTC via poll

System details

  • Omarchy version: 4.0.2-1 - Hardware: Lenovo ThinkPad X1 Carbon Gen 10 (21CCS2B600) - CPU: 12th Gen Intel Core i5-1240P - RAM: 16 GiB - GPU: Intel Alder Lake-P GT2 (Iris Xe Graphics), i915 driver - Display server: Wayland (Hyprland), Xwayland 24.1.13 available - Monitor: eDP-1, 1920x1200 @ 60Hz, scale 1.25 (fractional scaling — relevant since the bug is a pixel-offset/margin issue: bar height 24 logical px, offset exactly -24, i.e. -1x its own height) - Kernel: 7.1.9-arch1-2

What's wrong?

What happened

Running omarchy toggle bar on does not show the bar — it does the opposite.
The bar's PanelWindow layer stays parked off-screen (margin.top = -barSize,
i.e. y = -24 with barSize 24), with no exclusion zone reserved
(hyprctl monitors -j reports "reserved": [0,0,0,0] for the display), even
though the omarchy-shell (quickshell) process itself is alive and healthy —
no crash, no QML errors in the journal.

The bar can be recovered by manually deleting the state flag it depends on:

rm -f ~/.local/state/omarchy/toggles/bar-off
omarchy-shell -q omarchy.bar syncHidden

After that, hyprctl layers -j immediately shows the bar layer back at
y = 0 and hyprctl monitors -j shows the exclusion zone restored
("reserved": [0, 24, 0, 0]).

Root cause

bin/omarchy-toggle-bar:

omarchy-toggle bar-off "${1:-toggle}"

passes the user-facing on/off/toggle argument straight through to the
generic bin/omarchy-toggle helper, unchanged:

case "$ACTION" in
on) enable ;; # creates the flag file
off) disable ;; # removes the flag file
esac

The flag this call operates on is named bar-off — it represents the
hidden state, not the visible state that the bar command's own on/off
arguments describe. So:

  • omarchy toggle bar off (meant to hide the bar) → enable(bar-off) →

correct, bar hides.
- omarchy toggle bar on (meant to show the bar) → enable(bar-off) as
well, because "on" is passed straight to the generic toggle, which reads
it as "turn the bar-off flag ON" → the bar stays / becomes hidden,
the opposite of the documented behavior ("Toggle bar visibility without
killing the Omarchy shell").

omarchy toggle bar toggle (no argument) happens to work correctly, because
plain toggling doesn't go through the on/off case at all — it flips
based on whether the flag file currently exists. Only the explicit on/off
forms are inverted.

The shell side (Bar.qml) correctly reads the flag and reacts to it:

margins {
top: root.barHidden && root.position === "top" ? -root.barSize : 0
...
}

so once the flag is (wrongly) left in place, the bar is deliberately parked
off-screen by design — this isn't a rendering glitch, it's the intended
"hidden" behavior being triggered by the wrong command.

Steps to reproduce

  1. Confirm the bar is visible: omarchy toggle bar should show nothing odd.
  2. Run omarchy toggle bar off — bar disappears (expected).
  3. Run omarchy toggle bar on — bar stays hidden (bug: should reappear).
  4. Confirm with hyprctl layers -j: the omarchy-bar namespace layer is at

y = -24 (or -barSize generally) instead of y = 0.
5. Confirm the flag still exists: ls ~/.local/state/omarchy/toggles/bar-off
— it does, even after step 3.
6. omarchy restart shell and even a full reboot do not clear the flag
or fix the position, because the flag is a persisted file, not in-memory
state — every fresh shell start reads it again and re-hides the bar.

Expected behavior

omarchy toggle bar on should always result in the bar being visible
(flag bar-off removed), regardless of its prior state.

Suggested fix

In bin/omarchy-toggle-bar, translate the bar-facing on/off semantics to
the flag's own on/off semantics before delegating, e.g.:

case "${1:-toggle}" in
on) omarchy-toggle bar-off off ;;
off) omarchy-toggle bar-off on ;;
*) omarchy-toggle bar-off toggle ;;
esac

(or rename/rework the flag so its own name isn't inverted relative to the
command's argument names).

Workaround

rm -f ~/.local/state/omarchy/toggles/bar-off
omarchy-shell -q omarchy.bar syncHidden

System details

  • Omarchy version: 4.0.2-1
  • Hardware: Lenovo ThinkPad X1 Carbon Gen 10 (21CCS2B600)
  • CPU: 12th Gen Intel Core i5-1240P
  • GPU: Intel Alder Lake-P GT2 (Iris Xe Graphics), i915 driver
  • Display server: Wayland (Hyprland), Xwayland 24.1.13 available
  • Kernel: 7.1.9-arch1-2

Full diagnostic log attached (omarchy-debug-full.log, generated via
omarchy debug --no-sudo --print).

Additional notes

This is my first report to the Omarchy project — happy to provide any
additional logs, a screen recording, or test a proposed patch if useful.

<img width="1920" height="1200" alt="Image" src="https://github.com/user-attachments/assets/6f1316ab-c704-471d-8196-61c5fd0355bd" />
omarchy-debug-full.log

<img width="1920" height="1200" alt="Image" src="https://github.com/user-attachments/assets/447a77ab-2273-41b9-a023-24ff9d25d100" />

View raw text
### System details

- Omarchy version: 4.0.2-1 - Hardware: Lenovo ThinkPad X1 Carbon Gen 10 (21CCS2B600) - CPU: 12th Gen Intel Core i5-1240P - RAM: 16 GiB - GPU: Intel Alder Lake-P GT2 (Iris Xe Graphics), i915 driver - Display server: Wayland (Hyprland), Xwayland 24.1.13 available - Monitor: eDP-1, 1920x1200 @ 60Hz, scale 1.25 (fractional scaling —   relevant since the bug is a pixel-offset/margin issue: bar height 24   logical px, offset exactly -24, i.e. -1x its own height) - Kernel: 7.1.9-arch1-2

### What's wrong?

## What happened

Running `omarchy toggle bar on` does not show the bar — it does the opposite.
The bar's PanelWindow layer stays parked off-screen (margin.top = -barSize,
i.e. y = -24 with barSize 24), with no exclusion zone reserved
(`hyprctl monitors -j` reports `"reserved": [0,0,0,0]` for the display), even
though the omarchy-shell (quickshell) process itself is alive and healthy —
no crash, no QML errors in the journal.

The bar can be recovered by manually deleting the state flag it depends on:

    rm -f ~/.local/state/omarchy/toggles/bar-off
    omarchy-shell -q omarchy.bar syncHidden

After that, `hyprctl layers -j` immediately shows the bar layer back at
`y = 0` and `hyprctl monitors -j` shows the exclusion zone restored
(`"reserved": [0, 24, 0, 0]`).

## Root cause

`bin/omarchy-toggle-bar`:

    omarchy-toggle bar-off "${1:-toggle}"

passes the user-facing `on`/`off`/`toggle` argument straight through to the
generic `bin/omarchy-toggle` helper, unchanged:

    case "$ACTION" in
      on)  enable  ;;   # creates the flag file
      off) disable ;;   # removes the flag file
    esac

The flag this call operates on is named `bar-off` — it represents the
*hidden* state, not the *visible* state that the bar command's own `on`/`off`
arguments describe. So:

- `omarchy toggle bar off` (meant to hide the bar) → `enable(bar-off)` →
  correct, bar hides.
- `omarchy toggle bar on` (meant to show the bar) → `enable(bar-off)` as
  well, because `"on"` is passed straight to the generic toggle, which reads
  it as "turn the `bar-off` flag ON" → **the bar stays / becomes hidden**,
  the opposite of the documented behavior ("Toggle bar visibility without
  killing the Omarchy shell").

`omarchy toggle bar toggle` (no argument) happens to work correctly, because
plain toggling doesn't go through the `on`/`off` case at all — it flips
based on whether the flag file currently exists. Only the explicit `on`/`off`
forms are inverted.

The shell side (`Bar.qml`) correctly reads the flag and reacts to it:

    margins {
      top: root.barHidden && root.position === "top" ? -root.barSize : 0
      ...
    }

so once the flag is (wrongly) left in place, the bar is deliberately parked
off-screen by design — this isn't a rendering glitch, it's the intended
"hidden" behavior being triggered by the wrong command.

## Steps to reproduce

1. Confirm the bar is visible: `omarchy toggle bar` should show nothing odd.
2. Run `omarchy toggle bar off` — bar disappears (expected).
3. Run `omarchy toggle bar on` — bar stays hidden (bug: should reappear).
4. Confirm with `hyprctl layers -j`: the `omarchy-bar` namespace layer is at
   `y = -24` (or `-barSize` generally) instead of `y = 0`.
5. Confirm the flag still exists: `ls ~/.local/state/omarchy/toggles/bar-off`
   — it does, even after step 3.
6. `omarchy restart shell` and even a full reboot do **not** clear the flag
   or fix the position, because the flag is a persisted file, not in-memory
   state — every fresh shell start reads it again and re-hides the bar.

## Expected behavior

`omarchy toggle bar on` should always result in the bar being visible
(flag `bar-off` removed), regardless of its prior state.

## Suggested fix

In `bin/omarchy-toggle-bar`, translate the bar-facing `on`/`off` semantics to
the flag's own on/off semantics before delegating, e.g.:

    case "${1:-toggle}" in
      on)  omarchy-toggle bar-off off ;;
      off) omarchy-toggle bar-off on  ;;
      *)   omarchy-toggle bar-off toggle ;;
    esac

(or rename/rework the flag so its own name isn't inverted relative to the
command's argument names).

## Workaround

    rm -f ~/.local/state/omarchy/toggles/bar-off
    omarchy-shell -q omarchy.bar syncHidden

## System details

- Omarchy version: 4.0.2-1
- Hardware: Lenovo ThinkPad X1 Carbon Gen 10 (21CCS2B600)
- CPU: 12th Gen Intel Core i5-1240P
- GPU: Intel Alder Lake-P GT2 (Iris Xe Graphics), i915 driver
- Display server: Wayland (Hyprland), Xwayland 24.1.13 available
- Kernel: 7.1.9-arch1-2

Full diagnostic log attached (`omarchy-debug-full.log`, generated via
`omarchy debug --no-sudo --print`).

## Additional notes

This is my first report to the Omarchy project — happy to provide any
additional logs, a screen recording, or test a proposed patch if useful.

<img width="1920" height="1200" alt="Image" src="https://github.com/user-attachments/assets/6f1316ab-c704-471d-8196-61c5fd0355bd" />
[omarchy-debug-full.log](https://github.com/user-attachments/files/31804410/omarchy-debug-full.log)

<img width="1920" height="1200" alt="Image" src="https://github.com/user-attachments/assets/447a77ab-2273-41b9-a023-24ff9d25d100" />
  • omarchy-debug-full.log
  • 6f1316ab-c704-471d-8196-61c5fd0355bd
  • 447a77ab-2273-41b9-a023-24ff9d25d100

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.