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.
Agent windows (org.omarchy.agent) miss the terminal scroll_touchpad rule, making touchpad scrolling ~10x slower
Reported by jr00n · filed Aug 29, 2026 · open at source
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
Agent windows (org.omarchy.agent) are excluded from the terminalscroll_touchpad rule, making touchpad scrolling ~10x slower than in a
regular terminal window.
What happens
default/hypr/input.lua speeds up touchpad scrolling per terminal class:
-- default/hypr/input.lua:82
o.window("(Alacritty|kitty|foot)", { scroll_touchpad = 1.5 })
o.window("com.mitchellh.ghostty", { scroll_touchpad = 0.2 })But omarchy-agent deliberately gives every agent window a fixed app-id:
# /usr/bin/omarchy-agent:111
# A fixed app-id rather than the default org.omarchy.<binary>, so every agent
# window shares one class for window rules and themes to single out.
exec omarchy-launch-tui --app-id=org.omarchy.agent "${command[@]}"org.omarchy.agent does not match (Alacritty|kitty|foot), so agent windows
get no scroll_touchpad rule at all and fall back to 1.0.
A second factor compounds it. foot only applies its ownscrollback.multiplier (7.0 in Omarchy's config/foot/foot.ini) when it
scrolls its own scrollback. Once the client enables the alternate screen with
mouse reporting, the multiplier is skipped:
/* foot 1.27.0, input.c:3368 */
static double
mouse_scroll_multiplier(const struct terminal *term, const struct seat *seat)
{
return (term->grid == &term->normal ||
(term_mouse_grabbed(term, seat) && term->alt_scrolling))
? term->conf->scrollback.multiplier
: 1.0;
}Agents run a fullscreen TUI, so that is always the case for them.
Combined effect on a touchpad:
| window | window rule | foot multiplier | effective |
|---|---|---|---|
regular foot window | 1.5 | 7.0 | 10.5x |
org.omarchy.agent | 1.0 (no rule) | 1.0 | 1x |
Steps to reproduce
- Default terminal set to foot, on a laptop touchpad.
- Open a regular terminal and run any pager or TUI that scrolls its scrollback.
Two-finger scroll moves at a normal pace.
3. Super + Shift + Ctrl + A to open an agent window, let it produce enough
output to scroll, and two-finger scroll. It crawls.
Expected
Touchpad scrolling in an agent window should feel the same as in a regular
terminal window.
Workaround
-- ~/.config/hypr/input.lua
o.window("org.omarchy.agent", { scroll_touchpad = 10.0 })10.0 is the maximum Hyprland accepts for scrolltouchpad; 10.5 is rejected
with value 10.50 is more than the maximum of 10.00.
Note on a proper fix
Simply adding org.omarchy.agent to the existing rule would not be enough —
1.5 only works for windows that also get foot's 7.0 scrollback multiplier,
which a fullscreen TUI never does. Agent windows need roughly the product of
the two (~10).
There is also a wrinkle: because omarchy-agent pins one app-id for every
terminal, the class no longer says which terminal is running, while the
existing rules are deliberately per-terminal (0.2 for ghostty vs 1.5 for
foot/alacritty/kitty). A correct fix probably has to pick the value inomarchy-agent / omarchy-launch-tui where the terminal is known, rather
than in a class-based window rule.
System
- Omarchy 4.0.1-2 (
omarchyandomarchy-settingsboth 4.0.1-2) - Hyprland on Arch (aarch64, Apple Silicon / Asahi)
- Terminal: foot 1.27.0
- Agent: Claude Code,
tui: fullscreen
View raw text
Agent windows (`org.omarchy.agent`) are excluded from the terminal
`scroll_touchpad` rule, making touchpad scrolling ~10x slower than in a
regular terminal window.
## What happens
`default/hypr/input.lua` speeds up touchpad scrolling per terminal class:
```lua
-- default/hypr/input.lua:82
o.window("(Alacritty|kitty|foot)", { scroll_touchpad = 1.5 })
o.window("com.mitchellh.ghostty", { scroll_touchpad = 0.2 })
```
But `omarchy-agent` deliberately gives every agent window a fixed app-id:
```sh
# /usr/bin/omarchy-agent:111
# A fixed app-id rather than the default org.omarchy.<binary>, so every agent
# window shares one class for window rules and themes to single out.
exec omarchy-launch-tui --app-id=org.omarchy.agent "${command[@]}"
```
`org.omarchy.agent` does not match `(Alacritty|kitty|foot)`, so agent windows
get no `scroll_touchpad` rule at all and fall back to 1.0.
A second factor compounds it. foot only applies its own
`scrollback.multiplier` (7.0 in Omarchy's `config/foot/foot.ini`) when it
scrolls its own scrollback. Once the client enables the alternate screen with
mouse reporting, the multiplier is skipped:
```c
/* foot 1.27.0, input.c:3368 */
static double
mouse_scroll_multiplier(const struct terminal *term, const struct seat *seat)
{
return (term->grid == &term->normal ||
(term_mouse_grabbed(term, seat) && term->alt_scrolling))
? term->conf->scrollback.multiplier
: 1.0;
}
```
Agents run a fullscreen TUI, so that is always the case for them.
Combined effect on a touchpad:
| window | window rule | foot multiplier | effective |
|---|---|---|---|
| regular `foot` window | 1.5 | 7.0 | 10.5x |
| `org.omarchy.agent` | 1.0 (no rule) | 1.0 | 1x |
## Steps to reproduce
1. Default terminal set to foot, on a laptop touchpad.
2. Open a regular terminal and run any pager or TUI that scrolls its scrollback.
Two-finger scroll moves at a normal pace.
3. `Super + Shift + Ctrl + A` to open an agent window, let it produce enough
output to scroll, and two-finger scroll. It crawls.
## Expected
Touchpad scrolling in an agent window should feel the same as in a regular
terminal window.
## Workaround
```lua
-- ~/.config/hypr/input.lua
o.window("org.omarchy.agent", { scroll_touchpad = 10.0 })
```
10.0 is the maximum Hyprland accepts for `scrolltouchpad`; 10.5 is rejected
with `value 10.50 is more than the maximum of 10.00`.
## Note on a proper fix
Simply adding `org.omarchy.agent` to the existing rule would not be enough —
1.5 only works for windows that also get foot's 7.0 scrollback multiplier,
which a fullscreen TUI never does. Agent windows need roughly the product of
the two (~10).
There is also a wrinkle: because `omarchy-agent` pins one app-id for every
terminal, the class no longer says which terminal is running, while the
existing rules are deliberately per-terminal (0.2 for ghostty vs 1.5 for
foot/alacritty/kitty). A correct fix probably has to pick the value in
`omarchy-agent` / `omarchy-launch-tui` where the terminal is known, rather
than in a class-based window rule.
## System
- Omarchy 4.0.1-2 (`omarchy` and `omarchy-settings` both 4.0.1-2)
- Hyprland on Arch (aarch64, Apple Silicon / Asahi)
- Terminal: foot 1.27.0
- Agent: Claude Code, `tui: fullscreen`
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:00 UTC