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

omarchy-hw-touchpad fails to detect touchpads whose libinput name doesn't contain "touchpad"/"trackpad" (e.g. synaptics-tm3053-004)

Reported by ealarcony · filed Aug 30, 2026Closed upstream on 2026-09-21 by bjarneo via an automated message, as a duplicate of #8376 (R-1426). 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

omarchy-hw-touchpad fails to detect touchpads whose libinput name doesn't contain "touchpad"/"trackpad" (e.g. synaptics-tm3053-004)revision 1 · captured 2026-10-04 12:03 UTC via poll

What happened

omarchy toggle touchpad (and omarchy toggle touchpad off) fails with No touchpad device found, even though a touchpad is present and correctly enumerated by Hyprland.

What was expected

The touchpad should be disabled (and the toggle should persist across reloads, per the tool's own design).

Root cause

omarchy-hw-touchpad detects the touchpad by substring-matching the libinput device name against touchpad|trackpad (case-insensitive):

device=$(hyprctl devices -j | jq -r '[.mice[] | .name | select(test("touchpad|trackpad"; "i"))] | first // empty')

On this hardware the touchpad reports its libinput name as the Synaptics chip model, synaptics-tm3053-004 — it contains neither substring, so detection silently returns empty and the toggle tool exits with "No touchpad device found."

hyprctl devices correctly lists it as a distinct mouse-type device alongside the TrackPoint:

mice:
  synaptics-tm3053-004     <- the touchpad; name doesn't match the pattern
  tpps/2-ibm-trackpoint    <- TrackPoint, correctly not matched

Since omarchy-hw-touchpad is also used by omarchy-toggle-input-device's enable() path (via require_device), this affects both disabling and re-enabling through the toggle command once a workaround disable has been applied by other means.

Steps to reproduce

  1. On a laptop whose touchpad's libinput device name doesn't contain "touchpad" or "trackpad" (e.g. reports as a bare chip/model string like synaptics-tm3053-004)
  2. Run omarchy toggle touchpad off
  3. Observe: No touchpad device found on stderr, exit 1 — nothing is disabled

Suggested fix

Name-substring matching is inherently fragile for this. A more robust detection would use libinput/udev's own touchpad classification instead of guessing from the device name — e.g. checking ID_INPUT_TOUCHPAD=1 via udev properties for the corresponding input device, or using hyprctl devices -j's device type info if/when Hyprland exposes one, rather than pattern-matching free-text names that vary by vendor/chip.

System details

  • Omarchy version: 4.0.1-1
  • Hardware: Lenovo ThinkPad T450s
  • Touchpad libinput name: synaptics-tm3053-004

Workaround in use

Manually applying the same primitive the toggle tool would have used, directly in ~/.config/hypr/input.lua so it's re-applied on every reload:

hl.device({ name = "synaptics-tm3053-004", enabled = false })
View raw text
**What happened**

`omarchy toggle touchpad` (and `omarchy toggle touchpad off`) fails with `No touchpad device found`, even though a touchpad is present and correctly enumerated by Hyprland.

**What was expected**

The touchpad should be disabled (and the toggle should persist across reloads, per the tool's own design).

**Root cause**

`omarchy-hw-touchpad` detects the touchpad by substring-matching the libinput device name against `touchpad|trackpad` (case-insensitive):

```bash
device=$(hyprctl devices -j | jq -r '[.mice[] | .name | select(test("touchpad|trackpad"; "i"))] | first // empty')
```

On this hardware the touchpad reports its libinput name as the Synaptics chip model, `synaptics-tm3053-004` — it contains neither substring, so detection silently returns empty and the toggle tool exits with "No touchpad device found."

`hyprctl devices` correctly lists it as a distinct mouse-type device alongside the TrackPoint:

```
mice:
  synaptics-tm3053-004     <- the touchpad; name doesn't match the pattern
  tpps/2-ibm-trackpoint    <- TrackPoint, correctly not matched
```

Since `omarchy-hw-touchpad` is also used by `omarchy-toggle-input-device`'s `enable()` path (via `require_device`), this affects both disabling *and* re-enabling through the toggle command once a workaround disable has been applied by other means.

**Steps to reproduce**

1. On a laptop whose touchpad's libinput device name doesn't contain "touchpad" or "trackpad" (e.g. reports as a bare chip/model string like `synaptics-tm3053-004`)
2. Run `omarchy toggle touchpad off`
3. Observe: `No touchpad device found` on stderr, exit 1 — nothing is disabled

**Suggested fix**

Name-substring matching is inherently fragile for this. A more robust detection would use libinput/udev's own touchpad classification instead of guessing from the device name — e.g. checking `ID_INPUT_TOUCHPAD=1` via udev properties for the corresponding input device, or using `hyprctl devices -j`'s device `type` info if/when Hyprland exposes one, rather than pattern-matching free-text names that vary by vendor/chip.

**System details**

- Omarchy version: 4.0.1-1
- Hardware: Lenovo ThinkPad T450s
- Touchpad libinput name: `synaptics-tm3053-004`

**Workaround in use**

Manually applying the same primitive the toggle tool would have used, directly in `~/.config/hypr/input.lua` so it's re-applied on every reload:

```lua
hl.device({ name = "synaptics-tm3053-004", enabled = false })
```

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.