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

Touchpad not working

Reported by nightdevil00 · filed Aug 27, 2026 · open at source

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

Touchpad not workingrevision 1 · captured 2026-09-28 21:24 UTC via poll

System details

HP laptop (ELAN0709 I2C touchpad), Omarchy 4.0

What's wrong?

ELAN I2C Touchpad Not Working on Older Laptops — Analysis & Fix

Problem

Touchpad completely non-functional on an older HP laptop running Omarchy (Arch Linux + Hyprland). No cursor movement, no tap-to-click, no scrolling.

Environment

  • Laptop: Older HP laptop (ELAN0709 I2C touchpad)
  • OS: Omarchy (Arch Linux, kernel 7.1.9-arch1)
  • Compositor: Hyprland 0.55+ (Lua config)
  • Touchpad: ELAN0709:00 04F3:31BF (I2C HID)
  • BIOS: Already on latest version

Investigation

1. Initial Config Review

The input.lua had several issues that were not the root cause but needed fixing:

  • Unicode smart quotes (¨flat¨) in accel_profile line caused a Lua parse error
  • tap was used instead of tap_to_click (renamed in Hyprland 0.55+)
  • accel_profile was misplaced inside touchpad block (it's a top-level input option)

2. Kernel Driver Status

hid_multitouch    36864  0
i2c_hid_acpi      12288  0
i2c_hid           45056  1 i2c_hid_acpi

All modules loaded. Touchpad detected in /proc/bus/input/devices and /dev/input/event*.

3. Raw Event Test

Reading /dev/input/event* for 5 seconds returned 0 events. The kernel driver registered the device but zero events were reaching userspace.

4. dmesg — The Smoking Gun

i2c_hid_acpi i2c-ELAN0709:00: i2c_hid_get_input: incomplete report (14/3583)

The i2c_hid_acpi driver was receiving corrupted/incomplete HID reports from the ELAN touchpad (14 bytes instead of expected 3583).

5. Blacklist Attempt (Failed)

echo "blacklist i2c_hid_acpi" | sudo tee /etc/modprobe.d/touchpad-fix.conf

After reboot: touchpad completely vanished from /proc/bus/input/devices. The i2c_hid_acpi driver is the only one that binds to this ACPI device — blacklisting it left the touchpad undetected.

6. Resolution

sudo rm /etc/modprobe.d/touchpad-fix.conf
sudo reboot

After removing the blacklist and rebooting, the touchpad returned and worked. The incomplete report warning in dmesg was harmless — a known ELAN quirk where the IRQ line stays high after data transfer, causing a spurious report. The driver handles it gracefully.


Root Cause

The i2c_hid_acpi driver's incomplete report (14/3583) error is a known kernel bug with ELAN I2C touchpads. It's caused by:

  1. ELAN touchpad firmware takes ~7-8ms to pull IRQ back to high after data transfer
  2. The I2C host reads incomplete data before the touchpad is ready
  3. This generates a kernel error message but does not prevent the touchpad from working

The touchpad was not actually broken — the driver was working. The initial investigation revealed that zero raw events were reaching the test script, but after removing the interfering blacklist and rebooting, the driver resumed normal operation.


Fix Applied

ChangePurpose
Added tap_to_click = true to touchpad blockEnable tap-to-click (correct option name for Hyprland 0.55+)
Fixed Unicode quotes in accel_profile lineResolve Lua parse error preventing config from loading
Removed /etc/modprobe.d/touchpad-fix.confUndo blacklist that broke touchpad detection entirely

Lessons Learned

  1. Don't blacklist `i2c_hid_acpi` on ELAN touchpads — it's the only driver that binds to the ACPI device
  2. The incomplete report warning is cosmetic on most ELAN devices
  3. Hyprland 0.55 Lua config renamed tap → tap_to_click and accel_profile stays under input, not input.touchpad
  4. Always test raw events (/dev/input/event*) to distinguish hardware vs software issues
  5. Check dmesg before touching config — the kernel log told us the real story

Related Kernel Bug

This is tracked in multiple places:

View raw text
### System details

HP laptop (ELAN0709 I2C touchpad), Omarchy 4.0

### What's wrong?

# ELAN I2C Touchpad Not Working on Older Laptops — Analysis & Fix

## Problem

Touchpad completely non-functional on an older HP laptop running Omarchy (Arch Linux + Hyprland). No cursor movement, no tap-to-click, no scrolling.

## Environment

- **Laptop:** Older HP laptop (ELAN0709 I2C touchpad)
- **OS:** Omarchy (Arch Linux, kernel 7.1.9-arch1)
- **Compositor:** Hyprland 0.55+ (Lua config)
- **Touchpad:** ELAN0709:00 04F3:31BF (I2C HID)
- **BIOS:** Already on latest version

---

## Investigation

### 1. Initial Config Review

The `input.lua` had several issues that were **not the root cause** but needed fixing:

- Unicode smart quotes (`¨flat¨`) in `accel_profile` line caused a Lua parse error
- `tap` was used instead of `tap_to_click` (renamed in Hyprland 0.55+)
- `accel_profile` was misplaced inside `touchpad` block (it's a top-level `input` option)

### 2. Kernel Driver Status

```
hid_multitouch    36864  0
i2c_hid_acpi      12288  0
i2c_hid           45056  1 i2c_hid_acpi
```

All modules loaded. Touchpad detected in `/proc/bus/input/devices` and `/dev/input/event*`.

### 3. Raw Event Test

Reading `/dev/input/event*` for 5 seconds returned **0 events**. The kernel driver registered the device but zero events were reaching userspace.

### 4. dmesg — The Smoking Gun

```
i2c_hid_acpi i2c-ELAN0709:00: i2c_hid_get_input: incomplete report (14/3583)
```

The `i2c_hid_acpi` driver was receiving corrupted/incomplete HID reports from the ELAN touchpad (14 bytes instead of expected 3583).

### 5. Blacklist Attempt (Failed)

```bash
echo "blacklist i2c_hid_acpi" | sudo tee /etc/modprobe.d/touchpad-fix.conf
```

After reboot: **touchpad completely vanished** from `/proc/bus/input/devices`. The `i2c_hid_acpi` driver is the only one that binds to this ACPI device — blacklisting it left the touchpad undetected.

### 6. Resolution

```bash
sudo rm /etc/modprobe.d/touchpad-fix.conf
sudo reboot
```

After removing the blacklist and rebooting, the touchpad returned and worked. The `incomplete report` warning in dmesg was **harmless** — a known ELAN quirk where the IRQ line stays high after data transfer, causing a spurious report. The driver handles it gracefully.

---

## Root Cause

The `i2c_hid_acpi` driver's `incomplete report (14/3583)` error is a **known kernel bug** with ELAN I2C touchpads. It's caused by:

1. ELAN touchpad firmware takes ~7-8ms to pull IRQ back to high after data transfer
2. The I2C host reads incomplete data before the touchpad is ready
3. This generates a kernel error message but **does not prevent the touchpad from working**

The touchpad was not actually broken — the driver was working. The initial investigation revealed that zero raw events were reaching the test script, but after removing the interfering blacklist and rebooting, the driver resumed normal operation.

---

## Fix Applied

| Change | Purpose |
|--------|---------|
| Added `tap_to_click = true` to `touchpad` block | Enable tap-to-click (correct option name for Hyprland 0.55+) |
| Fixed Unicode quotes in `accel_profile` line | Resolve Lua parse error preventing config from loading |
| Removed `/etc/modprobe.d/touchpad-fix.conf` | Undo blacklist that broke touchpad detection entirely |

---

## Lessons Learned

1. **Don't blacklist `i2c_hid_acpi`** on ELAN touchpads — it's the only driver that binds to the ACPI device
2. The `incomplete report` warning is cosmetic on most ELAN devices
3. Hyprland 0.55 Lua config renamed `tap` → `tap_to_click` and `accel_profile` stays under `input`, not `input.touchpad`
4. Always test raw events (`/dev/input/event*`) to distinguish hardware vs software issues
5. Check `dmesg` before touching config — the kernel log told us the real story

---

## Related Kernel Bug

This is tracked in multiple places:

- [Bugzilla #215747](https://bugzilla.kernel.org/show_bug.cgi?id=215747) — Regression: Mouse gets sluggish after suspend/resume
- [Patch by Kai-Heng Feng](https://patchwork.kernel.org/project/linux-input/patch/[email protected]/) — Adds `I2C_HID_QUIRK_BOGUS_IRQ` for ELAN devices

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 09:33 UTC