Unofficial community reference. Not affiliated with 37signals or the Omacom Foundation. Download Omarchy only from omarchy.org.
omarchylinux.org Unofficial field manual

Touchpad, keyboard and input on Omarchy

What the touchpad and keyboard stack does on Omarchy 4.x: the defaults in input.lua, the quirk scripts, the i2c-hid failures that break pads, and the fix order.

Reference Applies to Omarchy 4.0.0 and later Last verified 2026-09-16 on 4.0.4
Short answer

On Omarchy 4.0.4 most touchpads and keyboards work with no setup: libinput handles them and defaults live in ~/.config/hypr/input.lua. Breakage is usually an i2c-hid probe or resume failure, so run `omarchy restart trackpad` first, then A/B boot the stock linux kernel. Omarchy's own touchpad toggle misses pads whose device name lacks touchpad or trackpad.

On this page
  1. Status on 4.0.4
  2. What Omarchy does automatically
  3. Known problems
  4. Fixes that work
  5. Report it
  6. Related

Input is the part of Omarchy that either disappears into the background or ruins your day. On most laptops the touchpad and keyboard just work, because libinput and the kernel do the work and Omarchy only sets a handful of defaults. When it breaks, the cause is almost always below Omarchy: an i2c-hid controller that times out, a kernel regression, or Apple firmware. Everything below was checked against the v4.0.4 source tree and against issues filed on 4.0.x. The manual chapter is Keyboard, Mouse, Trackpad.

Status on 4.0.4

Good for most hardware. Of the 541 issues that mention touchpads, keyboards, libinput or gestures, the current 4.x failures cluster into four groups: i2c-hid pads that fail to probe at boot or fail to resume, Omarchy’s own touchpad tooling missing devices it should match, Intel Macs and Surface machines with no built-in input in the installer or at the LUKS prompt, and fresh regressions from the bespoke linux-omarchy kernel that 4.0.4 made the default for everyone.

That last group is new and worth watching. On an Alienware m15 Ryzen Edition R5, linux-omarchy 7.2.5-3 makes the SynPS/2 Synaptics pad vanish from /proc/bus/input/devices entirely, while stock linux 7.2.3 on the same machine enumerates it fine (issue #12181). If your pad died the day you took 4.0.4, suspect the kernel before anything else.

What Omarchy does automatically

The defaults live in default/hypr/input.lua and are short. Keyboard layout and variant are read out of /etc/vconsole.conf at reload time. If the layout cannot type Latin letters, Omarchy prepends us and adds grp:alts_toggle so Left Alt plus Right Alt switches, because Hyprland resolves keybindings against the first layout only. That fallback answers reports like #2054, where an install done with a Russian layout could not switch back to English. Caps Lock becomes the compose key, and both Shift keys together give you Caps Lock back with a self-cancelling variant. Repeat rate is 40 with a 250 ms delay, and numlock starts on.

For the pad itself the defaults are natural_scroll = false, clickfinger_behavior = true, and scroll_factor = 0.4, plus per-app scroll multipliers for Alacritty, kitty, foot and Ghostty. Gestures are not enabled: the hl.gesture examples in config/hypr/input.lua ship commented out.

At install time install/hardware/all.sh runs several input quirk scripts:

  • fix-fkeys.sh writes options hid_apple fnmode=2 so F keys on Apple-style keyboards stay F keys.
  • fix-synaptic-touchpad.sh loads psmouse with synaptics_intertouch=1 when /proc/bus/input/devices names a Synaptics pad. It is deliberately not persisted to /etc/modprobe.d, and it was made non-fatal after it took whole installs down during arch-chroot.
  • dell-xps-touchpad-haptics.sh installs the haptics helper when omarchy-hw-dell-xps-haptic-touchpad matches an XPS with the i2c device VEN_06CB:00. You then get Trigger > Hardware > Touchpad Haptics with low, mid and high.
  • asus/fix-asus-ptl-b9406-touchpad.sh drops a libinput quirk masking the pressure axes on the ExpertBook B9406 Pixart pad, whose 0 to 1 pressure values make libinput discard every motion event as a touch jump.
  • asus/fix-z13-touchpad.sh adds a udev rule marking the ROG Flow Z13 detachable keyboard’s pad as internal so disable-while-typing can pair with the keyboard.
  • apple/fix-spi-keyboard.sh installs macbook12-spi-driver-dkms and the right mkinitcpio MODULES line for MacBook8,1 through MacBookPro14,x.
  • fix-surface-keyboard.sh writes a Surface aggregator module list into the initramfs so the keyboard works before decryption.
  • framework/qmk-hid.sh adds the udev rule for Framework 16 keyboard RGB control.

Three helper commands matter day to day. omarchy-hw-touchpad prints the detected pad by matching hyprctl devices names against touchpad|trackpad. omarchy toggle touchpad enables or disables it and, since migration 1787618700, persists the device name as plain data rather than generated Lua. omarchy restart trackpad unbinds and rebinds every i2c_hid_acpi device, then reloads intel_quicki2c if present.

Known problems

Issue Models Status Fixed in
#12181 PS/2 pad absent under linux-omarchy 7.2.5-3 Alienware m15 Ryzen R5, SynPS/2 pads open not fixed
#11245 ELAN i2c-hid pad freezes for seconds on kernel 7.2.3 Acer Nitro 5, Intel LPSS open not fixed
#10924 i2c_hid_acpi fails to resume after s2idle ASUS Zenbook UM3406KA open workaround only
#9658 i2c_designware times out at boot, no pad created Lenovo 21DM convertible open workaround only
#9347 Goodix GXTP7863 probe fails with -110 Huawei MateBook D BOD-WXX9 open not fixed
#6935 right-click dead when clickfinger_behavior is unset Framework SNSL0028 pad, config migrated from 3.x open workaround only
#10449 XF86TouchpadToggle bind never fires any laptop with a touchpad Fn key open PR #10577 open
#8376 toggle no-ops when the device name lacks touchpad or trackpad Apple MTP and bcm5974, Pixelbook, Synaptics TM3053 open PR #8281 open
#12029 an external pad shadows the internal one ThinkPad E595 plus a Bluetooth Magic Trackpad, any second pad can do it open not fixed
#7010 lid close disables the touchpad and it stays off HP Pavilion Gaming open not fixed
#11128 no keyboard or pad at the LUKS prompt AMD Surface Laptop 3 and 4 open not fixed
#12136 haptic pad needs linux-surface plus iptsd Surface Laptop Studio 2 open not fixed
#10815 disable-while-typing has no effect T2 MacBook Pro open not fixed
#2415 internal keyboard dead in the installer Intel MacBooks open not fixed

Two of these are Omarchy’s own code rather than hardware. Issue #6935 is the sharper one: the 4.0 migration faithfully converted a commented-out clickfinger_behavior line from input.conf into a commented-out Lua line inside a touchpad table that still set scroll_factor, and on that machine right-click stopped working entirely, by corner or by two-finger tap, even though the stock default has set clickfinger_behavior = true since 4.0.0. Setting it explicitly to true or false in input.lua brought it back; why the default did not apply is not established in the thread. Issue #10449 is the other: Hyprland’s input:resolve_binds_by_sym defaults to false and nothing in the v4.0.4 tree sets it, which we confirmed by grepping the tree, so all three stock XF86Touchpad* binds are dead out of the box.

The reporter of #7010 found the nastiest interaction. On his HP Pavilion the internal keyboard emits a spurious KEY_TOUCHPAD_OFF (scancode d8) about a quarter second before the lid switch reports closed. Omarchy binds XF86TouchpadOff to omarchy-toggle-touchpad off, so every lid close writes the persisted disable state and the pad stays off after resume. A manual suspend from the menu never triggers it because no key is emitted. His workaround is hl.unbind("XF86TouchpadOff") in bindings.lua.

On Intel Macs the story is older and mostly not Omarchy’s to fix. The applespi timeouts on MacBook8,1 (issue #1954, continued in #2099) survived several rounds of module fixes; in August 2026 matthiasjg traced them to the DesignWare DMA engine the SPI controller transfers through and published a working setup for Omarchy 4.0. The 4.0.4 installer already writes his MacBook8,1 MODULES line in apple/fix-spi-keyboard.sh, but the initcall_blacklist=dw_pci_driver_init kernel parameter that actually makes the keyboard work is only in PR #9735, which is open and not in any 4.0.x release. The installer keyboard problem in #2415 is two bugs in one thread, and an external USB keyboard gets you through either.

Fixes that work

Try these in order.

  1. Check whether the device exists at all. hyprctl devices -j | jq -r '.mice[].name' and libinput list-devices. If the pad is missing from both, it is a kernel or firmware problem, not configuration.
  2. Run omarchy restart trackpad. This clears the common i2c-hid wedge, including the 7.2.3 ELAN freezes in #11245. Note that it only touches i2c_hid_acpi and intel_quicki2c, so it does nothing for Apple bcm5974 pads (#9389).
  3. A/B the kernel. Reboot into the stock linux or linux-lts entry in Limine and retest. This is what isolated both #12181 and #11245, and it is the single most useful thing you can put in a bug report.
  4. If right-click or scrolling changed after upgrading from 3.x, open ~/.config/hypr/input.lua and set the touchpad options explicitly instead of leaving them commented.
  5. If the Fn touchpad key does nothing, add hl.config({ input = { resolve_binds_by_sym = true } }) to your input config.
  6. If the pad only dies after suspend, wrap the scoped i2c_hid_acpi unbind and rebind for your device in a systemd sleep hook, as in #10924. See suspend and sleep.
  7. If the toggle seems stuck off, delete ~/.local/state/omarchy/toggles/hypr/touchpad-disabled-name and reload Hyprland.
  8. For layout trouble, set kb_layout and kb_options in input.lua rather than fighting the installer. See layouts and locale.

Report it

Run omarchy debug, which writes /tmp/omarchy-debug.log with inxi -Farz, dmesg, the current boot’s warnings and errors, and your package list. Add the four things maintainers keep asking for: the output of hyprctl devices -j, the exact device string from libinput list-devices, journalctl -k -b | grep -i 'i2c_hid\|i2c_designware\|applespi', and your DMI product name from /sys/class/dmi/id/product_name. If you can, include an A/B result against the stock kernel. Reports in this area that name the controller, the HID id and the kernel version get fixed. Reports that say the touchpad stopped working do not.

Most-discussed upstream issues

The most-discussed upstream issues for this subsystem (627 total, 337 open).

IssueStateCommentsOpened
#1744 Enable Bluetooth keyboard and mice at login screenclosed242025-09-18
#2099 Keyboard MacBook 12" / 8, 1 2015closed362025-09-30
#1571 Can't become sudo sometimes, password not acceptedclosed292025-09-10
#5339 Keyboard won't work after Live Updateclosed332026-04-17
#4599 chromium immediate crash after Omarchy 3.3.3 hotfixclosed202026-02-13
#483 Improve documentation for adding another keyboard layout · fixed by #760 #12157 closed152025-08-04
#1799 Portuguese Layout crashes installer on 3.0.1closed132025-09-19
#2074 Comprehensive Fuzzy Search in Omarchy Menu (Super+Alt+Space) for Nested Itemsclosed82025-09-29
#1594 Hyprland 0.51 gesture breaking change: config option <gesture:workspace_swipe> does not existclosed12025-09-11
#1595 Hyprland 0.51 gestures:workspace_swipe are goneclosed82025-09-11
#7220 Screensaver/idle triggers during Firefox video playback — portal Inhibit falls back to unowned org.freedesktop.ScreenSaverclosed32026-08-17
#748 Walker and Omarchy menu don't launch on Super+Spaceclosed202025-08-13

Questions people ask

Where do I change touchpad settings on Omarchy 4?
In ~/.config/hypr/input.lua, reachable from the Omarchy menu under Setup > Input. The 3.x file was ~/.config/hypr/input.conf and the 4.0 migration converted it. Only uncommented settings there replace Omarchy's defaults; a line you leave commented out falls through to default/hypr/input.lua.
Why does my touchpad toggle key do nothing?
Two separate bugs. Hyprland's input:resolve_binds_by_sym defaults to false, so the stock XF86TouchpadToggle bind never matches (issue #10449). And omarchy-hw-touchpad only matches devices whose Hyprland name contains touchpad or trackpad, so on other pads the toggle exits with an error nobody sees (issue #8376).
Are touchpad gestures set up by default?
No. The gesture lines in config/hypr/input.lua ship commented out. Add hl.gesture({ fingers = 3, direction = "horizontal", action = "workspace" }) yourself. It is the Lua form of the gesture = 3, horizontal, workspace line the 3.x input.conf shipped, also commented out.

Sources and credit

Fixes on this page were worked out by ohai89 (Showed that leaving clickfinger_behavior unset in the migrated Lua config kills right-click entirely), ReetamBG (Traced the lid-close touchpad disable to an HP firmware KEY_TOUCHPAD_OFF scancode hitting the stock bind), mlusetti (Proved the stock XF86Touchpad binds never fire because resolve_binds_by_sym is off), GonzFC (Found that omarchy-hw-touchpad matches on device name, so Apple MTP pads are invisible to the toggle), ottosilva (Documented the i2c_hid_acpi resume failure and the scoped unbind/rebind sleep hook that fixes it), matthiasjg (Root-caused the MacBook8,1 applespi timeouts to the DesignWare DMA engine and published a working setup). Text here is our own paraphrase; follow the links for the original threads.

Unofficial. Verify against the official manual for your version. Improve this page Markdown version Sources