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.
Touchpad not working
Reported by nightdevil00 · filed Aug 27, 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
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¨) inaccel_profileline caused a Lua parse error tapwas used instead oftap_to_click(renamed in Hyprland 0.55+)accel_profilewas misplaced insidetouchpadblock (it's a top-levelinputoption)
2. Kernel Driver Status
hid_multitouch 36864 0
i2c_hid_acpi 12288 0
i2c_hid 45056 1 i2c_hid_acpiAll 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.confAfter 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 rebootAfter 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:
- ELAN touchpad firmware takes ~7-8ms to pull IRQ back to high after data transfer
- The I2C host reads incomplete data before the touchpad is ready
- 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
- Don't blacklist `i2c_hid_acpi` on ELAN touchpads — it's the only driver that binds to the ACPI device
- The
incomplete reportwarning is cosmetic on most ELAN devices - Hyprland 0.55 Lua config renamed
tap→tap_to_clickandaccel_profilestays underinput, notinput.touchpad - Always test raw events (
/dev/input/event*) to distinguish hardware vs software issues - Check
dmesgbefore touching config — the kernel log told us the real story
Related Kernel Bug
This is tracked in multiple places:
- Bugzilla #215747 — Regression: Mouse gets sluggish after suspend/resume
- Patch by Kai-Heng Feng — Adds
I2C_HID_QUIRK_BOGUS_IRQfor ELAN devices
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