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)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.