Mate desktop: How to disable/enable Touch Pad on the fly?

On Mate desktop 1.18.1, unable to find the preference settings for the Touch Pad in order to enable and disable the Touch Pad on the fly. Having the Touch Pad active while typing text results in a huge mess at times, so bad at times that the text has to be retyped completely, or plenty cut-n-paste to be done to fix.

Yep Dell laptops (design flaw by Dell) does not come with Fn+F? key combination to disable the Touch Pad on the fly, so user need to rely on the MATE desktop to provide the equivalent functionality.

I’m not a MATE user, but this might be relevant here…

https://wiki.archlinux.org/index.php/Touchpad_Synaptics#MATE

MATE

It is possible configure the way MATE handles the touchpad:

  1. Run dconf-editor
  2. Edit the keys in the org.mate.desktop.peripherals.touchpad folder.

To prevent Mate settings daemon from overriding existing settings, do as follows:

  1. Run dconf-editor
  2. Edit org.mate.SettingsDaemon.plugins.mouse
  3. Uncheck the active
    setting. >

Depending on the Xorg input driver in use, it may be possible to get the desired behaviour via a custom Xorg config file

grep "Using input driver" /var/log/Xorg.0.log

BTW, can the touchpad be configured via the following?
System > Preferences > Hardware > Mouse > Touchpad tab

There is no Touchpad tab on the Mouse window, only 1 tab for Mouse.

Not sure what I supposed to look for:

grep "Using input driver" /var/log/Xorg.0.log
    22.505] (II) Using input driver 'libinput' for 'Power Button'
    22.565] (II) Using input driver 'libinput' for 'Video Bus'
    22.581] (II) Using input driver 'libinput' for 'Video Bus'
    22.593] (II) Using input driver 'libinput' for 'Power Button'
    22.610] (II) Using input driver 'libinput' for 'Sleep Button'
    22.623] (II) Using input driver 'libinput' for 'Logitech USB Optical Mouse'
    22.675] (II) Using input driver 'libinput' for 'Integrated_Webcam_HD'
    22.698] (II) Using input driver 'libinput' for 'DLL07B1:01 044E:120B'
    22.749] (II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard'
    22.777] (II) Using input driver 'libinput' for 'PS/2 Generic Mouse'
    22.805] (II) Using input driver 'libinput' for 'Dell WMI hotkeys'
    22.863] (II) Using input driver 'libinput' for 'DLL07B1:01 044E:120B'

Edit 1:
Even disabling the touchpad in the settings and rebooting the laptop, the touchpad is still active.

My Dell laptop does have an Fn key combination for this. And it works in MATE. But it does not work in Gnome or in XFCE.

Found out from Dell today, that the Fn combination for enabling/disabling touchpad has been removed from newer models. Go figure…

This likely relates to the touchpad device for your Dell. For some reason it is listed twice…

Using input driver 'libinput' for 'DLL07B1:01 044E:120B'

Get the device ID for the touchpad using…

xinput

The list the properties for that device eg device 10

xinput list-props 10

There is usually a “Device Enabled” device property that can be used to disable/enable a given device. For example, to disable device 10 do

xinput set-prop 10 "Device Enabled" 0

To enable again

xinput set-prop 10 "Device Enabled" 1

Perhaps you could define two hotkeys (not sure what is possible with MATE) to run a simple script using the xinput set-prop’ command to disable and enable the touchpad device.

If you’re using a mouse, you could create two graphical .desktop files (with appropriate icons) so that you can simply click on graphical desktop iconsto disable and enable the touchpad respectively eg ~/.local/sgare/applications/disable_touchpad

[Desktop Entry]
Name=Disable touchpad
Categories=MATE;GTK;Settings
Comment[en_GB]=Set your touchpad preferences
Comment=Set your touchpad preferences
Exec=xinput set-prop 12 "Device Enabled" 0
Icon=input-touchpad
StartupNotify=true
Terminal=false
Type=Application

and ~/.local/share/applications/enable_touchpad

[Desktop Entry]
Name=Enable touchpad
Categories=MATE;GTK;Settings
Comment[en_GB]=Set your touchpad preferences
Comment=Set your touchpad preferences
Exec=xinput set-prop 12 "Device Enabled" 1
Icon=input-touchpad
StartupNotify=true
Terminal=false
Type=Application

You’ll need to use the actual device ID from xinput appropriate for your touchpad device.

Hope that helps.

One additional commant: As Device IDs can change with the addition/removal of input devices, it is preferable to use the device name as reported by xinput eg

xinput set-prop "DLL07B1:01 044E:120B" "Device Enabled" 0

Thank you for your advice. Have a working solution now.

I created these Menu items on MATE menu that created these two files:

~/.local/share/applications/Disable touchpad

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon=distributor
Icon[en_GB]=distributor
Name[en_GB]=Disable touchpad
Exec=xinput set-prop "pointer:DLL07B1:01 044E:120B" "Device Enabled" 0
Comment[en_GB]=Set your touchpad preferences
Name=Disable touchpad
Comment=Set your touchpad preferences

~/.local/share/applications/Enable touchpad

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon=distributor
Icon[en_GB]=distributor
Name[en_GB]=Enable touchpad
Exec=xinput set-prop "pointer:DLL07B1:01 044E:120B" "Device Enabled" 1
Comment[en_GB]=Set your touchpad preferences
Name=Disable touchpad
Comment=Set your touchpad preferences

Just used the SUSE icon for now, till I can find suitable icons.

Here is xinput result explaining the double entry for the device:

xinput
⎡ Virtual core pointer                        id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                  id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB Optical Mouse                  id=11    [slave  pointer  (2)]
⎜   ↳ PS/2 Generic Mouse                          id=15    [slave  pointer  (2)]
⎜   ↳ DLL07B1:01 044E:120B                        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)]
    ↳ Power Button                                id=9    [slave  keyboard (3)]
    ↳ Sleep Button                                id=10    [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD                        id=12    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard                id=14    [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                            id=16    [slave  keyboard (3)]
    ↳ DLL07B1:01 044E:120B                        id=17    [slave  keyboard (3)]

Good to know that this solution works for you. :slight_smile: