61

I can disable my touchpad but if I'm away from my bluetooth mouse or forget my wireless dongle for my backup mouse, I'm SOL. Linux Mint had a nice setting that allowed the touchpad to be disabled when using a mouse. I'm now on Ubuntu MATE 16.04 and do not have that setting. How can I get that functionality? The turn off touchpad while typing option is not enough to prevent light touches of my palm to FU something I'm working on.

I've read other similar questions on here and was unable to find an answer for this exact issue.

Jacob Vlijm
  • 85,475

5 Answers5

100

On Gnome-based distros, you should be able to disable the touchpad, if an external mouse is connected, by the command:

gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled-on-external-mouse

To get the current situation:

gsettings get org.gnome.desktop.peripherals.touchpad send-events

Options are:

enabled
disabled
disabled-on-external-mouse
Jacob Vlijm
  • 85,475
7

There is also a program which introduces some GUI to edit some such settings.

sudo add-apt-repository ppa:atareao/atareao
sudo apt update
sudo apt install touchpad-indicator

Read a more detailed instruction set at https://itsfoss.com/disable-touchpad-when-mouse-used/

Angelorf
  • 200
  • 2
  • 6
6

If you are afraid of the terminal you can use the dconf-editor: dconf-enable-touchpad-image

jl005
  • 183
3

I realise that I'm a bit late to the party (and also that my answer is not specific to ubuntu-mate), but here goes...

I have very similar requirements to you but I run xfce on debian 9 (stretch) so I have no gnome/gsettings installed. To disable/re-enable the synaptics touchpad whenever I plug-in/unplug a usb-mouse, I use udev rules to trigger a (posix) shell script that unbinds/rebinds the synaptics touchpad driver:

  1. As root, create /usr/local/sbin/touchpadctl.sh with the following contents:

    #!/bin/sh
    set -o errexit #(equivalent -e)
    set -o nounset #(equivalent -u)
    
    usage(){
      echo "Usage: ${0} {-enable|-e|-disable|-d}"
    }
    
    if [ $# -ne 1 ]; then
      usage
      exit 1
    fi
    
    base_dir=/sys/bus/serio/drivers/psmouse
    device_id=serio1
    
    if [ ${1} = "-disable" -o ${1} = "-d" ]; then
      logger "${0} is disabling the touchpad"
      echo -n manual > $base_dir/bind_mode
      echo -n $device_id > $base_dir/unbind 2>/dev/null || true
    elif [ ${1} = "-enable" -o ${1} = "-e" ]; then
      logger "${0} is enabling the touchpad"
      echo -n auto > $base_dir/bind_mode
    else
      usage
      exit 1
    fi
    
  2. Make your touchpad control script executable:

    sudo chmod +x /usr/local/sbin/touchpadctl.sh
    
  3. Now test out your script. To disable the touchpad:

    sudo /usr/local/sbin/touchpadctl.sh -d
    

    and to enable the touchpad:

    sudo /usr/local/sbin/touchpadctl.sh -e
    

Because this uses "driver unbinding", there is no dependency whatsoever on X/xorg/wayland/gnome. As a result, you can use it in udev rules that will function correctly during boot-up:

  1. As root, create /etc/udev/rules.d/01-touchpad.rules with the following contents:

    KERNEL=="mouse*", ATTRS{phys}=="usb*", ACTION=="add", \
      RUN+="/usr/local/sbin/touchpadctl.sh -disable"
    KERNEL=="mouse*", ATTRS{phys}=="usb*", ACTION=="remove", \
      RUN+="/usr/local/sbin/touchpadctl.sh -enable"
    

As with all things linux, your mileage may vary - you might need to "tweak" it, but I've tried my best to make it easy to understand. For more information re driver binding/unbinding, read Greg Kroah-Hartman's 2005 article in Linux Weekly News and there's also some good info in the kernel source. For more information re writing udev rules, have a look at Daniel Drake's excellent tutorial.

jaimet
  • 166
1

On Kubuntu 16.04 you can just go to SystemSettings->Input Devices->Touchpad->Enable/Disable Touchpad

Now select disable when mouse is plugged in.