You are not logged in.

#1 2016-05-18 13:51:21

threesteel9
Member
Registered: 2016-05-18
Posts: 5

[SOLVED] Touchpad doesn't works when I hold a keyboard key

Hello guys! (I'm sorry if this question is already answered or if the question is too childish)

I usually play games on my Arch Linux machine. The problem is, when I hold an alphabet or number key on my keyboard, the touchpad doesn't responds making me unable to move the pointer. Other keys such as Ctrl, Shift, Functions when held don't cause the problem (I guess Arch takes Ctrl, Shift, Alt, etc. as a single input when I hold them). Due to this my movement in games is fairly restricted as I have to leave off the keyboard key to just change the camera and continue the game.

I am running Gnome 3.20.2 and I found no setting either in dconf nor in the Settings which could allow me to restrict this behavior.

So my question is simple. How to use keyboard and touch pad simultaneously.

Thanks!

Last edited by threesteel9 (2016-05-20 03:13:26)

Offline

#2 2016-05-18 14:04:54

Starfish
Member
From: Germany
Registered: 2015-10-21
Posts: 134

Re: [SOLVED] Touchpad doesn't works when I hold a keyboard key

https://help.gnome.org/misc/release-not … gs.html.en
Scroll to "Mouse & Touchpad" and take a look at the checkbox "Disable while typing"

Last edited by Starfish (2016-05-18 14:06:14)


"Yesterday is history, tomorrow is a mystery, but today is a gift. That is why it is called the present." - Master Oogway

Offline

#3 2016-05-18 14:24:08

threesteel9
Member
Registered: 2016-05-18
Posts: 5

Re: [SOLVED] Touchpad doesn't works when I hold a keyboard key

Starfish wrote:

https://help.gnome.org/misc/release-not … gs.html.en
Scroll to "Mouse & Touchpad" and take a look at the checkbox "Disable while typing"

That was the first place I went to tweak the settings. However, that option has been removed from Gnome since 3.16 or something like that.

Offline

#4 2016-05-19 14:52:01

threesteel9
Member
Registered: 2016-05-18
Posts: 5

Re: [SOLVED] Touchpad doesn't works when I hold a keyboard key

So after some digging into configuration files, I was finally able to solve my problem. I'll break this post down into two parts; Cause and Solution.

Cause

Since GNOME 3.18 (or maybe since another version), libinput is used to manage input peripherals such as Touchpad, Keyboard and maybe some others. By default, Disable touchpad while typing (also known as palm detection) is enabled in libinput's configuration. However, the libinput's config is directly managed by GNOME and since GNOME has no option to disable palm detection, we're basically stuck. We can try removing libinput (including xf86-input-libinput) but the whole GDM and GNOME shell depends on libinput and removing it means removing all software that relies on this dependency. So the only way left is to disable libinput and use other software to manage our peripherals. This is explained in next section.

Solution
  1. We'll start by disabling libinput. This can be simply done by removing it's configuration file. Fire up a terminal and execute: sudo mv /etc/share/X11/xorg.conf.d/60-libinput.conf /etc/share/X11/xorg.conf.d/60-libinput.conf.bak. The config file name might be different so verify the file name by actually navigating to the directory before executing the command and making amendments if needed.

  2. We'll now install extra software to manage our input peripherals. Remember as libinput config file is no longer present, after a reboot none your input device would not work (touchpad, keyboard). To fix keyboard, install libevdev and xf86-input-libevdev, sudo pacman -S libevdev xf86-input-libevdev. After installation has finished, remove everything from /etc/share/X11/xorg.conf.d/10-evdev.conf until the following section remains:
    Section "InputClass"
            Identifier "evdev keyboard catchall"
            MatchIsKeyboard "on"
            MatchDevicePath "/dev/input/event*"
            Driver "evdev"
    EndSection

    Save the file. We have finally fixed keyboard.

  3. For touchpad to work install synaptics drivers (I assume that your touchpad vendor is synaptics, if it is not, you should search for one that is compatible with your touchpad), sudo pacman -S synaptics xf86-input-synaptics. To manage touchpad settings easily, install gpointing-device-settings, sudo pacman -S gpointing-device-settings (this utility offers a nice GUI to easily manage your touchpad or trackpad settings).

  4. Now cross your fingers and reboot your computer. If everything goes well, your touchpad will now work even with keyboard key pressed. You can open GPointing Settings to change touchpad's speed, gesture scrolling, enable Palm Detection (if you want to smile ), etc.

    Do note that after applying the above steps you won't be able to configure your touchpad using the GNOME Settings.

Offline

#5 2016-10-16 20:47:53

HisDudeness
Member
From: Melzo, Milan (Italy)
Registered: 2014-09-29
Posts: 107

Re: [SOLVED] Touchpad doesn't works when I hold a keyboard key

This shouldn't be necrobumping, I asked about it and it should be ok. Sorry if I'm mistaken, and please feel free to close the topic.

I don't think the solution the OP has found is indeed a solution. He couldn't get to correctly set the touchpad up with libinput, so he reverted to synaptics, which is gonna be deprecated. If I didn't get it wrong from the wiki, libinput is the future, and one should stick with it to manage his input devices, touchpad including. It is easily customizable without any third-party GUI or Gnome tool.

First of all, input

$ xinput list

to get the id number corresponding to your touchpad.

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=13	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Video Bus                               	id=8	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=9	[slave  keyboard (3)]
    ↳ ASUS USB2.0 WebCam                      	id=10	[slave  keyboard (3)]
    ↳ Asus WMI hotkeys                        	id=11	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]

In my case, it clearly is 13. So, I input

$ xinput list-props 13

to see all the proprieties of my touchpad.

Device 'SynPS/2 Synaptics TouchPad':
	Device Enabled (139):	1
	Coordinate Transformation Matrix (141):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Tapping Enabled (275):	1
	libinput Tapping Enabled Default (276):	0
	libinput Tapping Drag Enabled (277):	1
	libinput Tapping Drag Enabled Default (278):	1
	libinput Tapping Drag Lock Enabled (279):	0
	libinput Tapping Drag Lock Enabled Default (280):	0
	libinput Tapping Button Mapping Enabled (281):	1, 0
	libinput Tapping Button Mapping Default (282):	1, 0
	libinput Accel Speed (283):	0.000000
	libinput Accel Speed Default (284):	0.000000
	libinput Natural Scrolling Enabled (285):	0
	libinput Natural Scrolling Enabled Default (286):	0
	libinput Send Events Modes Available (259):	1, 1
	libinput Send Events Mode Enabled (260):	0, 0
	libinput Send Events Mode Enabled Default (261):	0, 0
	libinput Left Handed Enabled (287):	0
	libinput Left Handed Enabled Default (288):	0
	libinput Scroll Methods Available (289):	1, 1, 0
	libinput Scroll Method Enabled (290):	1, 0, 0
	libinput Scroll Method Enabled Default (291):	1, 0, 0
	libinput Disable While Typing Enabled (292):	1
	libinput Disable While Typing Enabled Default (293):	1
	Device Node (262):	"/dev/input/event6"
	Device Product ID (263):	2, 7
	libinput Drag Lock Buttons (294):	<no items>
	libinput Horizontal Scroll Enabled (264):	1

I see that the number of the Disable While Typing option is 292. Obviously, the value is a boolean, meaning 1 stands for "yes" or "on", while 0 is "no" or "off". So, we just type

$ xinput set-prop 13 292 0

See the wiki for further reference.


The Dude minds.

Offline

Board footer

Powered by FluxBB