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?
3 Answers
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 Settings
⟶ Keyboard
⟶ Shortcuts
⟶ Custom Shortcuts
⟶ +
This screen appears:
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:
For disabling touchpad this is displayed:
-
What command lines would you suggest for the scripts in order to work in standard Ubuntu?– sudodusDec 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.– sudodusDec 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
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.
-
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.)– sudodusDec 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.– sudodusDec 23, 2016 at 6:21
-
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
)