====== Disable notebook touchpad in GNU/Linx ======
Following this recipe you can disable or enable the touchpad of your **GNU/Linux notebook** using the **command line**. I used it to control the touchpad of my **Teclast F6**, where the Fn key to disable the touchpad does not work.
Install the **xinput** Debian package and run the following to list the X input devices:
xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver Consumer Control id=8 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=15 [slave pointer (2)]
⎜ ↳ SYNA3602:00 0911:5288 Touchpad id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Video Bus id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ SHUNCCM2MP: SHUNCCM2MP id=10 [slave keyboard (3)]
↳ Intel HID events id=12 [slave keyboard (3)]
↳ Intel HID 5 button array id=13 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
↳ Logitech USB Receiver Consumer Control id=9 [slave keyboard (3)]
The ask more info about input the touchpad (ID #11 in the above example):
niccolo@ithaca:~$ xinput list-props 11
Device 'SYNA3602:00 0911:5288 Touchpad':
Device Enabled (154): 1
Coordinate Transformation Matrix (156): 1.000000, ...
Device Accel Profile (286): 1
...
The **Device Enabled** property has ID #154, we can disable it:
xinput set-prop 11 154 0
Replace the **zero** with **1** to re-enable it.
===== Mapping Fn+ESC on the Teclast F6 =====
The ESC key on the **Teclast F6 notebook** has the blue label indicating that the shortcut **Fn+ESC** should trigger the **touchpad toggle** function, but it does not work in GNU/Linux.
Using the **evtest** tool we can see that the Fn+ESC keys produces three events, i.e. it is the same as pressing three keys together:
Event: time 1620808296.082667, -------------- SYN_REPORT ------------
Event: time 1620808298.469045, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1d
Event: time 1620808298.469045, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1
Event: time 1620808298.469045, -------------- SYN_REPORT ------------
Event: time 1620808298.471997, type 4 (EV_MSC), code 4 (MSC_SCAN), value db
Event: time 1620808298.471997, type 1 (EV_KEY), code 125 (KEY_LEFTMETA), value 1
Event: time 1620808298.471997, -------------- SYN_REPORT ------------
Event: time 1620808298.473572, type 4 (EV_MSC), code 4 (MSC_SCAN), value 76
Event: time 1620808298.473572, type 1 (EV_KEY), code 85 (KEY_ZENKAKUHANKAKU), value 1
The keys are **Left Control**, **Left Meta** (also known as //Left Windows Logo// key) and the key used to toggle from Zenkaku (full-width) to Hankaku (half-width) Japanese character spacing :-O
Using **udev** I remapped the ''ZENKAKUHANKAKU'' key to the more useable **ESC** (see this page about **[[remap_keyboard_keys#customize_events_using_udev|customize udev events]]**):
evdev:atkbd:dmi:*
KEYBOARD_KEY_76=esc
If you are interested, I have a more complete configuration file which I use also to swap the **Fn key** behaviour on function keys (I want them to work as first option, instead of multimedia buttons). See this page about **[[remap_keyboard_keys#configuration_example_for_the_teclast_f6_notebook|rempapping keyboard keys]]**.
Finally, using the XFCE **Settings** => **Keyboard**, I associated the **Ctrl+Super+Escape** keyboard shortcut (where //Super// means //Left Windows Logo//) to the following shell script **/usr/local/bin/touchpad-toggle**:
#!/bin/sh
STATE="$(xinput --list-props 11 | egrep '^\s+Device Enabled' | rev | awk '{print $1}')"
set_on() {
xinput set-prop 11 154 1
echo "Touchpad enabled"
}
set_off() {
xinput set-prop 11 154 0
echo "Touchpad disabled (pass \"1\" as first option to re-enable it)"
}
case "$1" in
on|yes|1)
set_on
;;
off|no|0)
set_off
;;
*)
if [ "$STATE" -eq "1" ]; then
set_off
else
set_on
fi
;;
esac
**NOTICE**: I usually use the **Left Windows Logo** key as the **compose key**, to type international characters. Unfortunately the compose key cannot be used into an XFCE keyboard shortcut, so I changed my compose key to the **Menu key** (the one at the right of the space).
===== Web References =====
* **[[https://www.nico.schottelius.org/blog/xorg-disable-touchpad-with-xinput/| How to disable the touchpad in Xorg with xinput]]**