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

Dynamically generate clean monitor scale presets for screen resolution

Reported by grold · filed Oct 11, 2026 · open at source

Decided: Out of scope — decided by agents · verified 24 h 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

Dynamically generate clean monitor scale presets for screen resolutionrevision 1 · captured 2026-10-11 07:11 UTC via poll

Summary

Currently, the monitor panel plugin (shell/plugins/panels/monitor/Panel.qml) uses a static array of scale presets:

readonly property var scalePresets: ["1", "1.25", "1.6", "2", "3", "4"]

Because Hyprland fractional scaling requires integer logical pixels (divisors of gcd(120 * W, 120 * H)) to prevent subpixel jitter and blur, static presets often:
1. Do not match the exact clean divisors of common display resolutions.
2. Offer values that are too high or impractical for 1080p/1440p displays (e.g. 3x and 4x on 1080p result in unworkable viewport heights) while missing useful clean fractional steps (e.g. 1.33x, 1.5x).
3. Do not adapt to 1440p, Ultrawide, or 4K/Retina displays.

Proposed Solution

Dynamically compute clean scale presets tailored to the active monitor mode (W, H):
- Mathematical validity: Find scale candidates s = k / 120 where integer k divides gcd(120 * W, 120 * H).
- Resolution-tiered limits: Cap the upper scale limit based on vertical display height (H <= 1080 -> 2.0x; H <= 1600 -> 2.5x; H > 1600 -> 4.0x).
- Uniform spacing: Pick up to 6 clean scale values anchored at 1.0x and the maximum clean scale, ensuring the monitor's current active scale is included and intermediate steps minimize spacing variance.

View raw text
### Summary

Currently, the monitor panel plugin (`shell/plugins/panels/monitor/Panel.qml`) uses a static array of scale presets:
```qml
readonly property var scalePresets: ["1", "1.25", "1.6", "2", "3", "4"]
```

Because Hyprland fractional scaling requires integer logical pixels (divisors of `gcd(120 * W, 120 * H)`) to prevent subpixel jitter and blur, static presets often:
1. Do not match the exact clean divisors of common display resolutions.
2. Offer values that are too high or impractical for 1080p/1440p displays (e.g. 3x and 4x on 1080p result in unworkable viewport heights) while missing useful clean fractional steps (e.g. 1.33x, 1.5x).
3. Do not adapt to 1440p, Ultrawide, or 4K/Retina displays.

### Proposed Solution

Dynamically compute clean scale presets tailored to the active monitor mode `(W, H)`:
- **Mathematical validity**: Find scale candidates `s = k / 120` where integer `k` divides `gcd(120 * W, 120 * H)`.
- **Resolution-tiered limits**: Cap the upper scale limit based on vertical display height (`H <= 1080` -> 2.0x; `H <= 1600` -> 2.5x; `H > 1600` -> 4.0x).
- **Uniform spacing**: Pick up to 6 clean scale values anchored at 1.0x and the maximum clean scale, ensuring the monitor's current active scale is included and intermediate steps minimize spacing variance.

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-11 07:18 UTC