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

omarchy restart trackpad silently does nothing on elan_i2c touchpads

Reported by kianlabs · filed Sep 27, 2026 · open at source

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

omarchy restart trackpad silently does nothing on elan_i2c touchpadsrevision 1 · captured 2026-09-28 21:23 UTC via poll

omarchy restart trackpad silently does nothing on elan_i2c touchpads

/usr/bin/omarchy-restart-trackpad only iterates over devices bound to the
i2c_hid_acpi driver. Laptops whose touchpad is bound to any other I2C HID
driver (e.g. elan_i2c, common on ASUS models) are not reset at all, and the
command still exits 0 without printing anything — so it looks like it worked.

Steps to reproduce

  1. On a laptop with an ELAN touchpad bound to elan_i2c:
   $ ls -1 /sys/bus/i2c/drivers/elan_i2c/ | grep '^i2c-'
   i2c-ELAN1000:00
  1. Note there is nothing under the driver the script looks at:
   $ ls -1 /sys/bus/i2c/drivers/i2c_hid_acpi/ | grep '^i2c-'
   (empty)
  1. Run the command:
   $ omarchy restart trackpad
   $ echo $?
   0

It prints no output at all (not even Done) and exits 0.
4. The device is still bound, i.e. nothing was reset:

   $ ls -1 /sys/bus/i2c/drivers/elan_i2c/ | grep '^i2c-'
   i2c-ELAN1000:00

Why it happens

for dev in /sys/bus/i2c/drivers/i2c_hid_acpi/i2c-*; do
  [[ -e $dev ]] || continue
  ...
  echo "Done"
done

When the glob does not match, $dev is the literal unexpanded pattern, [[ -e $dev ]]
fails and the loop continues. Since the echo "Done" is inside the loop, the
command produces zero output and exits 0, which reads as success.

Expected behavior

Reset the touchpad regardless of which I2C HID driver it is bound to, and fail
loudly (non-zero exit) when no device is found, instead of silently succeeding.

The manual equivalent that does work on this machine:

echo "i2c-ELAN1000:00" | sudo tee /sys/bus/i2c/drivers/elan_i2c/unbind
sleep 1
echo "i2c-ELAN1000:00" | sudo tee /sys/bus/i2c/drivers/elan_i2c/bind

Suggested fix: discover the bound device via its sysfs path instead of assuming
i2c_hid_acpi, e.g. by looking the touchpad's phys/uniq up under
/sys/class/input/*/device, or by iterating over all of
/sys/bus/i2c/drivers/*/i2c-* that belong to an input device.

Context

This came up while debugging an unrelated touchpad problem, which made the
silent success actively misleading. Worth noting the same script also has an
intel_quicki2c branch guarded by lsmod | grep -q, which is fine, but the
primary loop should not fail open.

System

  • Omarchy 4.0.4-1
  • Arch, kernel 7.2.5-3-omarchy
  • Hyprland 0.56.2
  • ASUS GL752VL
  • Touchpad: ELAN ELAN1000, bound to elan_i2c on i2c-1
  • Intel HD Graphics 530 (i915), NVIDIA GTX 965M

Diagnostics

Relevant kernel lines:

elan_i2c i2c-ELAN1000:00: Elan Touchpad: Module ID: 0x0005, Firmware: 0x0004
input: Elan Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN1000:00/input/input8

hyprctl devices lists the device and omarchy hw touchpad prints
elan-touchpad, so the compositor enumerates it normally; the issue is purely
that the reset helper does not reach it.

View raw text
## `omarchy restart trackpad` silently does nothing on `elan_i2c` touchpads

`/usr/bin/omarchy-restart-trackpad` only iterates over devices bound to the
`i2c_hid_acpi` driver. Laptops whose touchpad is bound to any other I2C HID
driver (e.g. `elan_i2c`, common on ASUS models) are not reset at all, and the
command still exits `0` without printing anything — so it looks like it worked.

### Steps to reproduce

1. On a laptop with an ELAN touchpad bound to `elan_i2c`:
   ```
   $ ls -1 /sys/bus/i2c/drivers/elan_i2c/ | grep '^i2c-'
   i2c-ELAN1000:00
   ```
2. Note there is nothing under the driver the script looks at:
   ```
   $ ls -1 /sys/bus/i2c/drivers/i2c_hid_acpi/ | grep '^i2c-'
   (empty)
   ```
3. Run the command:
   ```
   $ omarchy restart trackpad
   $ echo $?
   0
   ```
   It prints **no output at all** (not even `Done`) and exits `0`.
4. The device is still bound, i.e. nothing was reset:
   ```
   $ ls -1 /sys/bus/i2c/drivers/elan_i2c/ | grep '^i2c-'
   i2c-ELAN1000:00
   ```

### Why it happens

```bash
for dev in /sys/bus/i2c/drivers/i2c_hid_acpi/i2c-*; do
  [[ -e $dev ]] || continue
  ...
  echo "Done"
done
```

When the glob does not match, `$dev` is the literal unexpanded pattern, `[[ -e $dev ]]`
fails and the loop `continue`s. Since the `echo "Done"` is *inside* the loop, the
command produces zero output and exits `0`, which reads as success.

### Expected behavior

Reset the touchpad regardless of which I2C HID driver it is bound to, and fail
loudly (non-zero exit) when no device is found, instead of silently succeeding.

The manual equivalent that does work on this machine:

```bash
echo "i2c-ELAN1000:00" | sudo tee /sys/bus/i2c/drivers/elan_i2c/unbind
sleep 1
echo "i2c-ELAN1000:00" | sudo tee /sys/bus/i2c/drivers/elan_i2c/bind
```

Suggested fix: discover the bound device via its sysfs path instead of assuming
`i2c_hid_acpi`, e.g. by looking the touchpad's `phys`/`uniq` up under
`/sys/class/input/*/device`, or by iterating over all of
`/sys/bus/i2c/drivers/*/i2c-*` that belong to an input device.

### Context

This came up while debugging an unrelated touchpad problem, which made the
silent success actively misleading. Worth noting the same script also has an
`intel_quicki2c` branch guarded by `lsmod | grep -q`, which is fine, but the
primary loop should not fail open.

### System

- Omarchy 4.0.4-1
- Arch, kernel 7.2.5-3-omarchy
- Hyprland 0.56.2
- ASUS GL752VL
- Touchpad: ELAN ELAN1000, bound to `elan_i2c` on `i2c-1`
- Intel HD Graphics 530 (i915), NVIDIA GTX 965M

### Diagnostics

Relevant kernel lines:

```
elan_i2c i2c-ELAN1000:00: Elan Touchpad: Module ID: 0x0005, Firmware: 0x0004
input: Elan Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN1000:00/input/input8
```

`hyprctl devices` lists the device and `omarchy hw touchpad` prints
`elan-touchpad`, so the compositor enumerates it normally; the issue is purely
that the reset helper does not reach it.

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 19:14 UTC