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

Bar widgets cannot be dragged into an empty section (e.g. empty left section)

Reported by aronnaxlin · 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

Bar widgets cannot be dragged into an empty section (e.g. empty left section)revision 1 · captured 2026-09-28 21:24 UTC via poll

System details

Intel Core Ultra 9 185H, NVIDIA GeForce RTX 4060 Mobile, Omarchy 4.0.2-1, Hyprland 0.56.2

What's wrong?

When a bar layout section (such as left) becomes completely empty ("left": [] in ~/.config/omarchy/shell.json), widgets from center or right cannot be moved into that section via mouse drag-and-drop.

Steps to reproduce

  1. Empty the left section of the bar, for example:
   omarchy bar move omarchy.menu --section center
   omarchy bar move omarchy.workspaces --section center

Now ~/.config/omarchy/shell.json has "left": [].
2. Attempt to drag any widget (such as omarchy.workspaces) from the center section to the far left side of the bar.
3. Release the mouse.

Observed behavior

The widget cannot be dropped into the left section. It always snaps to the nearest widget in the center section (or right). It is impossible to restore widgets to the empty section via GUI drag-and-drop. The only workaround is using CLI (omarchy bar move <widget> --section left) or manually editing shell.json.

Root cause analysis

In shell/plugins/bar/Bar.qml:
- moduleDropAtScene() iterates over moduleSlots to find drop target candidates:

  var candidates = []
  for (var i = 0; i < moduleSlots.length; i++) {
    var slot = moduleSlots[i]
    if (!slot || slot === sourceSlot || !slot.visible || slot.width <= 0 || slot.height <= 0) continue
    ...
    candidates.push({ slot: slot, ... })
  }
  return BarModel.nearestDropTarget(candidates, scenePoint, root.vertical)
  • BarModel.nearestDropTarget() selects the closest existing slot among candidates and drops before/after that slot's section.
  • When left has 0 widgets, there are no ModuleSlot items in region: "left".
  • Consequently, all candidates belong to center or right. Any cursor position (even at x=0) resolves to a slot in center or right, so the drop target region is never "left".

Empty layout regions should have drop target bounds (or fallback to empty section bounds) so widgets can be dropped into an empty section.

View raw text
### System details

Intel Core Ultra 9 185H, NVIDIA GeForce RTX 4060 Mobile, Omarchy 4.0.2-1, Hyprland 0.56.2

### What's wrong?

When a bar layout section (such as `left`) becomes completely empty (`"left": []` in `~/.config/omarchy/shell.json`), widgets from `center` or `right` cannot be moved into that section via mouse drag-and-drop.

#### Steps to reproduce

1. Empty the left section of the bar, for example:
   ```bash
   omarchy bar move omarchy.menu --section center
   omarchy bar move omarchy.workspaces --section center
   ```
   Now `~/.config/omarchy/shell.json` has `"left": []`.
2. Attempt to drag any widget (such as `omarchy.workspaces`) from the center section to the far left side of the bar.
3. Release the mouse.

#### Observed behavior

The widget cannot be dropped into the left section. It always snaps to the nearest widget in the `center` section (or `right`). It is impossible to restore widgets to the empty section via GUI drag-and-drop. The only workaround is using CLI (`omarchy bar move <widget> --section left`) or manually editing `shell.json`.

#### Root cause analysis

In `shell/plugins/bar/Bar.qml`:
- `moduleDropAtScene()` iterates over `moduleSlots` to find drop target candidates:
  ```javascript
  var candidates = []
  for (var i = 0; i < moduleSlots.length; i++) {
    var slot = moduleSlots[i]
    if (!slot || slot === sourceSlot || !slot.visible || slot.width <= 0 || slot.height <= 0) continue
    ...
    candidates.push({ slot: slot, ... })
  }
  return BarModel.nearestDropTarget(candidates, scenePoint, root.vertical)
  ```
- `BarModel.nearestDropTarget()` selects the closest existing `slot` among `candidates` and drops before/after that slot's section.
- When `left` has 0 widgets, there are no `ModuleSlot` items in `region: "left"`.
- Consequently, all candidates belong to `center` or `right`. Any cursor position (even at x=0) resolves to a slot in `center` or `right`, so the drop target region is never `"left"`.

Empty layout regions should have drop target bounds (or fallback to empty section bounds) so widgets can be dropped into an empty section.

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