How do you enable tap-to-click via command line?
Solution 1
Xmodmap is of no help here. Xmodmap controls physical-to-logical mappings of buttons and keys, not the physical process that generate events in the first place.
The tool for this kind of options is xinput. The property name depends on your touchpad model, it may be something like
xinput set-prop "SynPS/2 Synaptics TouchPad" "Synaptics Tap Action" 0
Run xinput list
to see the names of available devices and xinput list-props "the device name"
to list properties of a device.
See also Dynamic Input Configuration with xinput on the wiki, and some examples.
Solution 2
You can use gsettings
:
gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true
Which enables tap to click.
gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click false
Will disable it. This is the same as changing it in System Settings.
Solution 3
Based on the main answer, given that I had to modify some of the instructions there:
The command to enable tap-to-click is therefore of the form:
xinput set-prop "device" "action" 1
To read the "device" you have to do
xinput list
But it may prove difficult to identify the device in that list. Some tips: it is probably under "Virtual core pointer"; it may contain terms like "Syn", "Synaptics", "Touchpad", "Alps", "Glidepoint". e.g., mine was AlpsPS/2 ALPS GlidePoint id=16
, but I had to guess; as I was not sure I have tested if that was the correct ID number by disabling/enabling the touchpad with xinput --disable 16
and xinput --enable 16
.
Now, to get rid of all the confusing names, ID-numbers can be used instead of the device and action names.
So, to read the "action":
xinput list-props 16
Which listed among others:
libinput Tapping Enabled (297): 0
So, using ID numbers instead of names, the final command was:
xinput set-prop 16 297 1
Note: for some reason, using the name of the action within the command, as suggested by the main answer, wouldn't work for me (xinput set-prop ""AlpsPS/2 ALPS GlidePoint" "Tapping Enabled" 1
), while using just the name of the device did work (xinput set-prop "AlpsPS/2 ALPS GlidePoint" 297 1
).
This command can be useful in systems where there is no GUI for such setting, like in the LXQT that I was testing at the date of the post.
Related videos on Youtube
Wilf
It is important to remember the difference between mythical trolls and internet trolls. One sort is ugly, stupid and bad-tempered - the other sort is imaginary.
Updated on September 18, 2022Comments
-
Wilf almost 2 years
You can use this to reverse scroll direction (natural scroll):
xmodmap -e "pointer = 1 2 3 5 4 7 6 8 9 10 11 12"
You can also set it back again with
xmodmap -e "pointer = 1 2 3 4 5 7 6 8 9 10 11 12"
and this to switch the left and right buttons:
xmodmap -e "pointer = 3 2 1"
And change it back with
xmodmap -e "pointer = 1 2 3"
But how do you enable tap to click from command line? Preferably with one command, and not permanently.
By the way, yes I do know this exists:
-
Wilf over 10 yearsWell, doing it with
xmodmap
could be useful - this is for a battered old netbook with no functioning left click key... but I also thought if I usedxmodmap
, I could enable it in the login screen as well... -
h3. over 10 yearsI'm sure it's not possible @wilf. xmodmap controls physical-to-logical mappings of buttons and keys, not the physical process that generate events in the first place.
-
Wilf over 10 yearsWould I need to restart Unity/Xserver/LightDM to get these to work?
-
h3. over 10 years@wilf No, the command takes effect immediately. You can also configure at least some of these settings via a GUI (in which case they'll be applied when your session starts) but I'm not familiar with the GUI.
gsettings
changes the setting of the GUI interface. -
Wilf over 10 yearsSuccess!
xinput set-prop "SynPS/2 Synaptics TouchPad" "Synaptics Tap Action" 11
(might of been that number) seems to work, though it is also working as a back button AT THE SAME TIME. Edit: Whoops, actually, that didn't work - ?!? -
PlasmaBinturong over 7 yearswith another device name (in my case: "Glidepoint Virtual Touchpad") the action name would be different then? There is no "tap action" shown at all for my device :(
-
PlasmaBinturong over 7 yearsIf it's just the mirror of what's available in the graphical menu, it will not work in case the option is not visible graphically... (I get the error:
« org.gnome.settings-daemon.peripherals.touchpad » does not exist
) -
h3. over 7 years@PlasmaBinturong Yes, the name of the property may depend on the device. And some touchpads may not have a tap action at all, though I've never encountered one.
-
PlasmaBinturong over 7 years@Gilles, yes mine has, but funnily (well actually, annoyingly), the tap gets deactivated after resuming sleep/hibernation, and currently I have to
sudo service restart glidepoint
to get it back... but I still don't see the corresponding tap action inxinput list
, so maybe the subject of another question... -
Joe about 7 yearsThis answer is much preferred over
xinput
, and if you are using Cinnamon you'll want to adjust accordingly likegsettings set org.cinnamon.settings-daemon.peripherals.touchpad false
. -
Admin almost 6 yearsID-numbers can be used instead of names. e.g
xinput set-prop 16 297 1
. 16 is the number of the touchpad fromxinput list
, 297 stands for the "Tapping Enabled" action fromxinput list-props 16
, 1 istrue
. -
h3. almost 6 years@cipricus You can use numbers, but the number can vary from one driver to another. Using the number is mainly useful in scripts when you first parse the input of
list-props
to find a property, and you don't want to deal with complex quoting so you just store the number to use it withset-prop
. -
Admin almost 6 years@Gilles - Of course, but I guess the name of the device and that of the action varies almost as much as the numbers, so the
list-props
is needed anyway. Furthermore, for some reason, using the name of the action within the command, as suggested by the main answer, wouldn't work for me (xinput set-prop ""AlpsPS/2 ALPS GlidePoint" "Tapping Enabled" 1
), while using just the name of the device did work (xinput set-prop "AlpsPS/2 ALPS GlidePoint" 297 1
). -
balajeerc over 5 yearsThanks for this detailed answer.
-
Boson Bear almost 4 yearsfor me it's the ``libinput Tapping Enabled'' option