2

I have a new dell laptop and I want to create a keyboard shortcut to disable and enable the touchpad. How do I do this?

1
  • As promised after midnight, I wrote a comprehensive answer this morning. Sorry I didn't have the energy to do it last night but I think you'll like the end results :) Dec 23, 2016 at 17:43

3 Answers 3

9

Script to toggle Touchpad on/off with screen notification

Partial credit to this post (Enable/disable touchpad)

Create toggle-touchpad script

Create a new directory /home/USER/bin and then use gedit /home/USER/bin/toggle-touchpad. NOTE: Replace USER with your user ID. Copy and paste these lines into your editor:

#!/bin/bash

# NAME: toggle-touchpad
# PATH: /home/$USER/bin
# DESC: Update pulseaudio output device when HDMI TV plugged / unplugged
# CALL: called from Keyboard Shortcut `Super`+`T`
# DATE: Created Dec 23, 2016.
# NOTE: Written for AU question: http://askubuntu.com/questions/863746/keyboard-shortcut-to-disable-the-laptop-touchpad/863750?noredirect=1#comment1333958_863750


# Use device number matching touchpad, in this case 14
if [[ $(xinput list 14 | grep -Ec "disabled") -eq 1 ]]; then
    xinput enable 14
    DISPLAY=:0 notify-send --urgency=critical --icon=/usr/share/icons/gnome/256x256/status/user-available.png "Touchpad enabled"
else
    xinput disable 14
    DISPLAY=:0 notify-send --urgency=critical --icon=/usr/share/icons/gnome/256x256/status/user-busy.png "Touchpad disabled"
fi

exit 0

Mark toggle-touchpad script as executable

Save the file and exit the editor. Now flag the file as executable using chmod +x /home/USER/bin/toggle-touchpad

Assign toggle-touchpad script to keyboard shortcut

Open up System SettingsKeyboardShortcutsCustom Shortcuts+

This screen appears:

toggle-touchpad

Fill in the Custom Shortcut fields like this:

  • Name = Toggle Touchpad
  • Command = /home/USER/bin/toggle-touchpad

Click Apply button to save.

The new entry appears with status Disabled. Right click on Disabled and use Super+Z (or any other unused shortcut combination). I wanted to use Super+T but that is already assigned to Nautilus Trashcan.

Modify toggle-touchpad script to different device number

The default device number is set at 14. To find out what your device number is use the following:

───────────────────────────────────────────────────────────────────────────────
USER@host:~/bin$ xinput
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech Performance MX                   id=10   [slave  pointer  (2)]
⎜   ↳ Logitech K800                             id=11   [slave  pointer  (2)]
⎜   ↳ AlpsPS/2 ALPS GlidePoint                  id=14   [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)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Laptop_Integrated_Webcam_HD               id=12   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=15   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]
───────────────────────────────────────────────────────────────────────────────
USER@host:~/bin$ 

You can pick any device you like, ie Touchpad = 14, Webcam = 12, etc.

Which ever device number you use, simply open your /home/USER/bin/toggle-touchpad script and replace 14 with that device number.

Modify toggle-touchpad script to use different icons

When the "Touchpad enabled" / "Touchpad disabled" notification bubble is displayed, an icon is displayed left of the text. Stock icons are used from /usr/share/icons/gnome/256x256/status/ but you can change them.

For enabling touchpad this is displayed:

user available

For disabling touchpad this is displayed:

user busy

11
  • What command lines would you suggest for the scripts in order to work in standard Ubuntu?
    – sudodus
    Dec 23, 2016 at 6:24
  • The command lines are provided in the link in the first sentence. Dec 23, 2016 at 6:25
  • Thank you. This method with 'xinput enable xx' and 'xinput disable xx' seems portable - should work will all Ubuntu flavours.
    – sudodus
    Dec 23, 2016 at 6:44
  • Is there a way I can create one bash script with a conditional that, when run, would toggle the touchpad being on or off? I am just learning about scritpting now so any advice would be helpful! Dec 23, 2016 at 6:51
  • @sudodus Yes... I used it a couple months ago just to test on my system and it worked fine. It should be portable not just with touchpads but with mice too, etc. Dec 23, 2016 at 7:23
1

Some computers have a function key for this purpose. For example, my Toshiba has FnF5.

You can do it rather easily via Settings -- Mouse & touchpad in standard Ubuntu. (the icon with the cog wheel and wrench).

Otherwise you can do it with terminal commands in the lightweight Ubuntu flavours

Disable:

synclient touchpadoff=1

Enable:

synclient touchpadoff=0

And you can make aliases for these commands, or a 'touchpad-toggle alias'.

See

man synaptics

for more details.

   Option "TouchpadOff" "integer"
          Switch off the touchpad.  Valid values are:

          0   Touchpad is enabled
          1   Touchpad is switched off (physical clicks still work)
          2   Only tapping and scrolling is switched off
          When  the  touchpad is switched off, button events caused by a
          physical button press are still interpreted. On a ClickPad,
          this includes software-emulated middle and right buttons as
          defined by the SoftButtonAreas setting.
7
  • This did not work on my Dell Inspiron 17R 7720 SE laptop. Touchpad driver is called AlpsPS/2 ALPS GlidePoint Dec 23, 2016 at 6:09
  • Which method and which flavour of Ubuntu? (I added alternatives, because I realized that there are different options in different cases.)
    – sudodus
    Dec 23, 2016 at 6:12
  • Ubuntu 16.04 LTS 64-bit, Unity (regular) interface, current kernel. Dec 23, 2016 at 6:16
  • No, the synclient commands do not work in standard Ubuntu. They are probably overwritten or disabled by the tool behind 'Settings -- Mouse & touchpad', and the built-in function key works only in some computers.
    – sudodus
    Dec 23, 2016 at 6:21
  • This did not work. My laptop is a Dell Inspiron 15 7559. Dec 23, 2016 at 7:11
0

Sources here, here, also here.

This script also shows a notification with icon, as well as message.

#!/bin/sh
# This shell script is PUBLIC DOMAIN. You may do whatever you want with it.

TOGGLE=$HOME/.toggle_touchpad

if [ ! -e $TOGGLE ]; then
    touch $TOGGLE
    xinput disable 14
    notify-send -u low -i mouse --icon=/usr/share/icons/HighContrast/256x256/status/touchpad-disabled.png "Trackpad disabled"
else
    rm $TOGGLE
    xinput enable 14
    notify-send -u low -i mouse --icon=/usr/share/icons/HighContrast/256x256/devices/input-touchpad.png "Trackpad enabled"
fi

(in the above commands 14 is a variable to be identified with xinput list)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .