Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA 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.
Hyprland window rule for LocalSend does not match (class is 'org.localsend.localsend_app')
Reported by richerve · filed Aug 28, 2026Closed upstream on 2026-09-03 by its own reporter richerve. GitHub close reason: completed. Closed by its own reporter — not by itself evidence of a fix.
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
System details
Omarchy 4.0.1-1
What's wrong?
Summary
LocalSend opens tiled instead of floating because the default Hyprland window rule does not match the application's Wayland window class.
Environment
- Omarchy Version: 4.0.1-1
- LocalSend Version: 1.18.2-1 (arch package
localsend) - Compositor: Hyprland
Steps to Reproduce
- Launch LocalSend.
- Observe that it opens tiled in the active layout rather than as a centered floating window of size 1100x700.
Expected Behavior
LocalSend should float and center at 1100x700 as intended by default/hypr/apps/localsend.lua.
Root Cause
In default/hypr/apps/localsend.lua, the rule is defined as:
o.window("(Share|localsend)", { float = true, center = true })
o.window("localsend", { size = { 1100, 700 } })However, the packaged Linux application registers with the Wayland window class org.localsend.localsend_app:
{
"class": "org.localsend.localsend_app",
"initialClass": "org.localsend.localsend_app",
"title": "LocalSend"
}Since Hyprland's match.class RE2 regex requires a full string match when wildcards are absent, (Share|localsend) fails to match org.localsend.localsend_app.
Suggested Fix
Update default/hypr/apps/localsend.lua to include wildcards or the full app ID:
o.window(".*localsend.*", { float = true, center = true, size = { 1100, 700 } })or:
o.window("^(org\\.localsend\\.localsend_app|localsend|Share)$", {
float = true,
center = true,
size = { 1100, 700 },
})View raw text
### System details
Omarchy 4.0.1-1
### What's wrong?
### Summary
LocalSend opens tiled instead of floating because the default Hyprland window rule does not match the application's Wayland window class.
### Environment
- **Omarchy Version:** 4.0.1-1
- **LocalSend Version:** 1.18.2-1 (arch package `localsend`)
- **Compositor:** Hyprland
### Steps to Reproduce
1. Launch LocalSend.
2. Observe that it opens tiled in the active layout rather than as a centered floating window of size 1100x700.
### Expected Behavior
LocalSend should float and center at 1100x700 as intended by `default/hypr/apps/localsend.lua`.
### Root Cause
In `default/hypr/apps/localsend.lua`, the rule is defined as:
```lua
o.window("(Share|localsend)", { float = true, center = true })
o.window("localsend", { size = { 1100, 700 } })
```
However, the packaged Linux application registers with the Wayland window class `org.localsend.localsend_app`:
```json
{
"class": "org.localsend.localsend_app",
"initialClass": "org.localsend.localsend_app",
"title": "LocalSend"
}
```
Since Hyprland's `match.class` RE2 regex requires a full string match when wildcards are absent, `(Share|localsend)` fails to match `org.localsend.localsend_app`.
### Suggested Fix
Update `default/hypr/apps/localsend.lua` to include wildcards or the full app ID:
```lua
o.window(".*localsend.*", { float = true, center = true, size = { 1100, 700 } })
```
or:
```lua
o.window("^(org\\.localsend\\.localsend_app|localsend|Share)$", {
float = true,
center = true,
size = { 1100, 700 },
})
```
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.