#2138·kanata

Bug: including `Touchpad` device prevents cursor movement

Author: brandonbeaumiaCreated Aug 7, 2026Updated Sep 8, 2026
LabelsbuglinuxPRs welcome

Requirements

Describe the bug

In my linux-dev-names-include I list the following "mouse" (touchpad) device:

12:29:32.8528 [INFO] device [/dev/input/event6:ELAN0735:00 04F3:316C Mouse] is included

This does not cause any issues, but also does not seem to pull in any events. Running in --debug shows no output when moving around the touchpad, or clicking any combination of fingers. Maybe it's just a dummy device of some kind, I'm not sure.

So I then attempted to include the other device associated with my touchpad hardware:

 12:29:32.8528 [INFO] device [/dev/input/event6:ELAN0735:00 04F3:316C Touchpad] is included

At first I tried running without sudo per the doc instructions (how I usually run Kanata), but the device does not get listed as included despite being in my config. When I run Kanata with sudo, I get the above is included message. However, my cursor stops responding to touchpad movements. I can still press to click, but tapping does not click and moving around the touchpad does not move the cursor. process-unmapped-keys is on, and I've tried switching to linux-output-device-bus-type USB as well. It's definitely processing input from the device per the DEBUG logs, but movements don't seem to pass through.

Relevant kanata config

(defcfg
  process-unmapped-keys yes
  delegate-to-first-layer yes
  rapid-event-delay 5
  movemouse-smooth-diagonals yes
  movemouse-inherit-accel-state yes
  mouse-movement-key mvmt
  ;; Kanata captures everything on Linux by default, so we give it these device names as to ignore the rest.
  linux-dev-names-include (
    "ELAN0735:00 04F3:316C Mouse" ;; no input
    "ELAN0735:00 04F3:316C Touchpad" ;; consumes cursor movement
    "AT Translated Set 2 keyboard"
    "Logitech G305"
    "Razer Razer DeathAdder Essential"
    "Razer Razer DeathAdder Essential Keyboard"
    "ZMK Project Lily58 Mouse"
    "ZMK Project Lily58 Keyboard"
    "Lily58 Mouse"
    "Lily58 Keyboard"
  )
)

To Reproduce

Attempt to include this touchpad. I have no other touchpad hardware to test with, unfortunately.

Expected behavior

Cursor continues to move while touchpad is included.

Kanata version

1.12.0

Debug logs

12:49:08.5499 [INFO] config file is valid
12:49:08.5500 [DEBUG] (1) kanata_parser::cfg::alloc: sref type: [kanata_keyberon::action::Action<'_, &kanata_parser::custom_action::CustomAction>; 767], ptr:0x55c5e6cf5520 sz:12272
12:49:08.5512 [INFO] Created device "/dev/input/event20"
12:49:08.5513 [DEBUG] (1) kanata_state_machine::kanata::output_logic::zippychord: zchd reset state
12:49:08.5513 [DEBUG] (1) kanata_state_machine::kanata::output_logic::zippychord: zchd soft reset state
12:49:08.5514 [DEBUG] (1) kanata_state_machine::kanata::output_logic::zippychord: zchd clear historical data
12:49:08.5514 [INFO] Sleeping for 2s. Please release all keys and don't press additional ones. Run kanata with --help to see how understand more and how to disable this sleep.
12:49:10.5515 [INFO] entering the processing loop
12:49:10.5520 [INFO] entering the event loop
12:49:10.5520 [INFO] looking for devices in /dev/input
12:49:10.5521 [INFO] Init: catching only releases and sending immediately
12:49:10.5521 [INFO] device [/dev/input/event20:kanata] is ignored
12:49:10.5558 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Other, device name: Hints absolute mouse
12:49:10.5558 [INFO] device [/dev/input/event19:Hints absolute mouse] is ignored
12:49:10.5678 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Mouse, device name: Hints relative mouse
12:49:10.5678 [INFO] device [/dev/input/event18:Hints relative mouse] is ignored
12:49:10.5777 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Other, device name: HD-Audio Generic Headphone
12:49:10.5778 [INFO] device [/dev/input/event17:HD-Audio Generic Headphone] is ignored
12:49:10.5978 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Other, device name: HD-Audio Generic Mic
12:49:10.5978 [INFO] device [/dev/input/event16:HD-Audio Generic Mic] is ignored
12:49:10.6228 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Other, device name: HD-Audio Generic HDMI/DP,pcm=9
12:49:10.6228 [INFO] device [/dev/input/event15:HD-Audio Generic HDMI/DP,pcm=9] is ignored
12:49:10.6548 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Other, device name: HD-Audio Generic HDMI/DP,pcm=8
12:49:10.6548 [INFO] device [/dev/input/event14:HD-Audio Generic HDMI/DP,pcm=8] is ignored
12:49:10.6697 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Other, device name: HD-Audio Generic HDMI/DP,pcm=7
12:49:10.6698 [INFO] device [/dev/input/event13:HD-Audio Generic HDMI/DP,pcm=7] is ignored
12:49:10.6987 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Other, device name: HD-Audio Generic HDMI/DP,pcm=3
12:49:10.6988 [INFO] device [/dev/input/event12:HD-Audio Generic HDMI/DP,pcm=3] is ignored
12:49:10.7198 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Other, device name: HP WMI hotkeys
12:49:10.7198 [INFO] device [/dev/input/event11:HP WMI hotkeys] is ignored
12:49:10.7368 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Other, device name: PC Speaker
12:49:10.7368 [INFO] device [/dev/input/event10:PC Speaker] is ignored
12:49:10.7707 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Other, device name: Wireless hotkeys
12:49:10.7708 [INFO] device [/dev/input/event9:Wireless hotkeys] is ignored
12:49:10.7868 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Other, device name: ELAN0735:00 04F3:316C Touchpad
12:49:10.7868 [INFO] device [/dev/input/event8:ELAN0735:00 04F3:316C Touchpad] is included
12:49:10.7868 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Mouse, device name: ELAN0735:00 04F3:316C Mouse
12:49:10.7868 [INFO] device [/dev/input/event6:ELAN0735:00 04F3:316C Mouse] is included
12:49:10.7869 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type KeyboardMouse, device name: Logitech G305
12:49:10.7869 [INFO] device [/dev/input/event5:Logitech G305] is included
12:49:10.7869 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Other, device name: Video Bus
12:49:10.7869 [INFO] device [/dev/input/event7:Video Bus] is ignored
12:49:10.7951 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Keyboard, device name: AT Translated Set 2 keyboard
12:49:10.7951 [INFO] device [/dev/input/event4:AT Translated Set 2 keyboard] is included
12:49:10.7951 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Other, device name: Power Button
12:49:10.7951 [INFO] device [/dev/input/event3:Power Button] is ignored
12:49:10.8038 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Other, device name: Lid Switch
12:49:10.8038 [INFO] device [/dev/input/event2:Lid Switch] is ignored
12:49:10.8118 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Other, device name: Sleep Button
12:49:10.8118 [INFO] device [/dev/input/event1:Sleep Button] is ignored
12:49:10.8158 [DEBUG] (1) kanata_state_machine::oskbd::linux: Use for input autodetect: true. detect type Any; device type Other, device name: Power Button
12:49:10.8158 [INFO] device [/dev/input/event0:Power Button] is ignored
12:49:10.8328 [INFO] registering /dev/input/event8: "ELAN0735:00 04F3:316C Touchpad"
12:49:10.8517 [INFO] registering /dev/input/event6: "ELAN0735:00 04F3:316C Mouse"
12:49:10.8767 [INFO] registering /dev/input/event5: "Logitech G305"
12:49:10.8997 [INFO] registering /dev/input/event4: "AT Translated Set 2 keyboard"
12:49:11.0857 [INFO] Starting kanata proper
12:49:11.0857 [INFO] You may forcefully exit kanata by pressing lctl+spc+esc at any time. These keys refer to defsrc input, meaning BEFORE kanata remaps keys.
12:49:13.6909 [DEBUG] (3) kanata_state_machine::kanata: collected 2 events, reordering
12:49:13.6910 [DEBUG] (3) kanata_state_machine::kanata: reordered: [KeyEvent { code: BTN_TOUCH (330), value: Press }, KeyEvent { code: BTN_TOOL_FINGER (325), value: Press }]
12:49:13.6910 [DEBUG] (3) kanata_state_machine::kanata: process recv ev KeyEvent { code: BTN_TOUCH (330), value: Press }
12:49:13.6910 [DEBUG] (3) kanata_state_machine::kanata: process recv ev KeyEvent { code: BTN_TOOL_FINGER (325), value: Press }
12:49:13.6910 [DEBUG] (3) kanata_state_machine::kanata: key press     K330
12:49:13.6910 [DEBUG] (3) kanata_state_machine::oskbd::linux: send to uinput: InputEvent { time: SystemTime { tv_sec: 0, tv_nsec: 0 }, type: KEY, code: BTN_TOUCH, value: 1 }
12:49:13.6922 [DEBUG] (3) kanata_state_machine::kanata: key press     K325
12:49:13.6922 [DEBUG] (3) kanata_state_machine::oskbd::linux: send to uinput: InputEvent { time: SystemTime { tv_sec: 0, tv_nsec: 0 }, type: KEY, code: BTN_TOOL_FINGER, value: 1 }
12:49:14.0923 [DEBUG] (3) kanata_state_machine::kanata: collected 2 events, reordering
12:49:14.0924 [DEBUG] (3) kanata_state_machine::kanata: reordered: [KeyEvent { code: BTN_TOUCH (330), value: Release }, KeyEvent { code: BTN_TOOL_FINGER (325), value: Release }]
12:49:14.0924 [DEBUG] (3) kanata_state_machine::kanata: process recv ev KeyEvent { code: BTN_TOUCH (330), value: Release }
12:49:14.0924 [DEBUG] (3) kanata_state_machine::kanata: process recv ev KeyEvent { code: BTN_TOOL_FINGER (325), value: Release }
12:49:14.0924 [DEBUG] (3) kanata_state_machine::kanata: key release   K330
12:49:14.0924 [DEBUG] (3) kanata_state_machine::oskbd::linux: send to uinput: InputEvent { time: SystemTime { tv_sec: 0, tv_nsec: 0 }, type: KEY, code: BTN_TOUCH, value: 0 }
12:49:14.0936 [DEBUG] (3) kanata_state_machine::kanata: key release   K325
12:49:14.0936 [DEBUG] (3) kanata_state_machine::oskbd::linux: send to uinput: InputEvent { time: SystemTime { tv_sec: 0, tv_nsec: 0 }, type: KEY, code: BTN_TOOL_FINGER, value: 0 }
12:49:16.6657 [DEBUG] (3) kanata_state_machine::kanata: collected 2 events, reordering
12:49:16.6658 [DEBUG] (3) kanata_state_machine::kanata: reordered: [KeyEvent { code: BTN_TOUCH (330), value: Press }, KeyEvent { code: BTN_TOOL_FINGER (325), value: Press }]
12:49:16.6658 [DEBUG] (3) kanata_state_machine::kanata: process recv ev KeyEvent { code: BTN_TOUCH (330), value: Press }
12:49:16.6658 [DEBUG] (3) kanata_state_machine::kanata: process recv ev KeyEvent { code: BTN_TOOL_FINGER (325), value: Press }
12:49:16.6658 [DEBUG] (3) kanata_state_machine::kanata: key press     K330
12:49:16.6658 [DEBUG] (3) kanata_state_machine::oskbd::linux: send to uinput: InputEvent { time: SystemTime { tv_sec: 0, tv_nsec: 0 }, type: KEY, code: BTN_TOUCH, value: 1 }
12:49:16.6670 [DEBUG] (3) kanata_state_machine::kanata: key press     K325
12:49:16.6670 [DEBUG] (3) kanata_state_machine::oskbd::linux: send to uinput: InputEvent { time: SystemTime { tv_sec: 0, tv_nsec: 0 }, type: KEY, code: BTN_TOOL_FINGER, value: 1 }
12:49:17.2238 [DEBUG] (3) kanata_state_machine::kanata: process recv ev KeyEvent { code: BTN_LEFT (272), value: Press }
12:49:17.2238 [DEBUG] (3) kanata_state_machine::oskbd::linux: send to uinput: InputEvent { time: SystemTime { tv_sec: 0, tv_nsec: 0 }, type: KEY, code: BTN_LEFT, value: 1 }
12:49:17.3327 [DEBUG] (3) kanata_state_machine::kanata: process recv ev KeyEvent { code: BTN_LEFT (272), value: Release }
12:49:17.3327 [DEBUG] (3) kanata_state_machine::oskbd::linux: send to uinput: InputEvent { time: SystemTime { tv_sec: 0, tv_nsec: 0 }, type: KEY, code: BTN_LEFT, value: 0 }
12:49:17.7343 [DEBUG] (3) kanata_state_machine::kanata: collected 2 events, reordering
12:49:17.7343 [DEBUG] (3) kanata_state_machine::kanata: reordered: [KeyEvent { code: BTN_TOUCH (330), value: Release }, KeyEvent { code: BTN_TOOL_FINGER (325), value: Release }]
12:49:17.7343 [DEBUG] (3) kanata_state_machine::kanata: process recv ev KeyEvent { code: BTN_TOUCH (330), value: Release }
12:49:17.7343 [DEBUG] (3) kanata_state_machine::kanata: process recv ev KeyEvent { code: BTN_TOOL_FINGER (325), value: Release }
12:49:17.7343 [DEBUG] (3) kanata_state_machine::kanata: key release   K330
12:49:17.7343 [DEBUG] (3) kanata_state_machine::oskbd::linux: send to uinput: InputEvent { time: SystemTime { tv_sec: 0, tv_nsec: 0 }, type: KEY, code: BTN_TOUCH, value: 0 }
12:49:17.7355 [DEBUG] (3) kanata_state_machine::kanata: key release   K325
12:49:17.7355 [DEBUG] (3) kanata_state_machine::oskbd::linux: send to uinput: InputEvent { time: SystemTime { tv_sec: 0, tv_nsec: 0 }, type: KEY, code: BTN_TOOL_FINGER, value: 0 }
12:49:19.6984 [DEBUG] (3) kanata_state_machine::kanata: process recv ev KeyEvent { code: KEY_LEFTALT (56), value: Press }
12:49:19.6985 [DEBUG] (3) kanata_state_machine::kanata: key press     LCtrl
12:49:19.6985 [DEBUG] (3) kanata_state_machine::oskbd::linux: send to uinput: InputEvent { time: SystemTime { tv_sec: 0, tv_nsec: 0 }, type: KEY, code: KEY_LEFTCTRL, value: 1 }
12:49:19.7528 [DEBUG] (3) kanata_state_machine::kanata: process recv ev KeyEvent { code: KEY_Z (44), value: Press }
12:49:19.8053 [DEBUG] (3) kanata_state_machine::kanata: process recv ev KeyEvent { code: KEY_LEFTALT (56), value: Release }
12:49:19.8278 [DEBUG] (3) kanata_state_machine::kanata: process recv ev KeyEvent { code: KEY_Z (44), value: Release }
12:49:19.8278 [DEBUG] (3) kanata_state_machine::kanata: key press     Z
12:49:19.8279 [DEBUG] (3) kanata_state_machine::oskbd::linux: send to uinput: InputEvent { time: SystemTime { tv_sec: 0, tv_nsec: 0 }, type: KEY, code: KEY_Z, value: 1 }
^Z12:49:19.8298 [ERROR] failed poll: Os { code: 4, kind: Interrupted, message: "Interrupted system call" }
12:49:19.8299 [WARN] got SIGTSTP, exiting instead of pausing so keyboards don't hang

Operating system and I/O mechanism

Linux

Additional context

I'm attempting to get an automousekeys layer set up and was hoping mvmt would work by including it.