Skip to content

Instantly share code, notes, and snippets.

@fghaas
Last active May 10, 2018 16:55
Show Gist options
  • Save fghaas/3406be59095de212182f1803a503a64b to your computer and use it in GitHub Desktop.
Save fghaas/3406be59095de212182f1803a503a64b to your computer and use it in GitHub Desktop.
Attempt to disable AlpsPS/2 ALPS DualPoint Stick as an input device (via udev)
# /etc/udev/rules.d/75-input.rules
# local udev rules for input devices
ACTION!="add|change", GOTO="input_end"
# ALPS DualPoint Stick: Ignore as input device
ENV{ID_BUS}=="i8042", ENV{NAME}=="AlpsPS/2 ALPS DualPoint Stick", ENV{ID_INPUT}="", ENV{ID_INPUT_MOUSE}="", ENV{ID_INPUT_POINTINGSTICK}=""
LABEL="input_end"
@whot
Copy link

whot commented Aug 16, 2017

Note that there's a difference between ATTR and ATTRS - the former cannot work because it'll never match the event node. But that's the device we care about. ATTRS is supposed to search upwards from the current device, so it should have worked. Not sure what's going on there.

The device you need to run udevadm against is /sys/class/input/eventX - whichever is the event node (event5 in the above output), not the input node.

@fghaas
Copy link
Author

fghaas commented Aug 17, 2017

@whot OK, I have no idea what I did differently this time, but I changed my udev rule back to matching on ATTRS{name} again, and now things appear to be working. The stick pointer seems to have been permanently disabled and is now off, including in a Wayland session. Thanks for the help!

@msjyoo
Copy link

msjyoo commented Apr 11, 2018

Hello, thanks for the script! This technique also works with hwdb like so:

# /etc/udev/hwdb.d/98-latitude-trackpoint-disable.hwdb
# Dell Latitude E7470
# AlpsPS/2 ALPS DualPoint Stick
# udevadm info -a -q all /sys/devices/platform/i8042/serio1/input/input3
evdev:input:b0011v0002p0008e0800-e0,1,2,3,k110,111,112,r0,1,a18,mlsfw
 ID_INPUT=0
 ID_INPUT_MOUSE=0
 ID_INPUT_POINTINGSTICK=0

Afterwards run below to update the hwdb database and reload.

systemd-hwdb update
udevadm trigger

@psarraf
Copy link

psarraf commented May 10, 2018

The following udev rule worked for me. You can use wildcards in the device name. The rule is case sensitive, i.e., ATTRS{name} works but ATTRS{NAME} does not.

# ALPS DualPoint Stick: Ignore as input device
ATTRS{name}=="*DualPoint Stick", ENV{ID_INPUT}="", ENV{ID_INPUT_MOUSE}="", ENV{ID_INPUT_POINTINGSTICK}=""

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment