Touchpad stops working when a key is pressed/held

I've seen this happen on various machines and various Linux distros and I keep forgetting the exact way to control the behavior, so a blog post is due.

Essentially on an Xorg setup the default behavior for touchpads is to stop pointer activity as soon as a keyboard button is pressed or held.

If for example you wanted to relax a bit and play an Openarena match, you will quickly discover that when you use WASD to move in-game, the touchpad gets "locked" and you cannot look around ... until you stop moving.

Solution

Input devices on an Xorg machine are handled by the xinput utility. You can configure these devices to a usually very high detail, but you need to know how.

To start with, you've got to find your device. Run

xinput list

(or just xinput)

and you will get back a detailed listing of input devices. Each will have its ID listed like so

...
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [slave  pointer  (2)]
...

(in this example it's id=12). Find your device in the list and remember that ID.

To see what properties can be configured for this device, run

xinput list-props 12

among which you can find, for example, something like

libinput Disable While Typing Enabled (355):    1

where the 355 represents the ID of that one specific setting, and the 1 represents what it is set to at the moment (1 meaning true since this setting is boolean).

To disable it, I run

xinput set-prop 12 355 0

and to confirm the settings has been applied I can do

xinput list-props 12

again.

That's it. Feel free to explore various settings and look them up and BE CAREFUL not to change things you don't understand.


[Next: how to mass remove a nested array element propery in MongoDB]