266

I want my touchpad to be disabled when I use my mouse. How can I do that? touchpad-indicator has stopped working on 11.10. It used to work on 11.04. Gnome3 is not a solution as I don't like it and find it buggy.

kiri
  • 28,246
  • 16
  • 81
  • 118
Peng Wu
  • 7,203

30 Answers30

384

Run the following command in a terminal:

xinput list

You will get an output that looks like this:

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [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_1.3M             id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=13   [slave  keyboard (3)]

It displays all the input devices connected. Note that they all have an id. Since 12 is the id for my touchpad, running the following command will disable it.

xinput set-prop 12 "Device Enabled" 0

In Ubuntu versions >12.04 you can also directly disable via

xinput --disable 12

(and enable via a similar command)

Dave
  • 352
Peng Wu
  • 7,203
  • 39
    turn off touch pad synclient TouchpadOff=1

    turn it back on synclient TouchpadOff=0 This way even better.

    – Peng Wu Oct 17 '11 at 10:40
  • 1
    sudo apt-get install touchpad-indicator the good new is that touchpad-indicator is worked again in 11.10. – Peng Wu Nov 10 '11 at 23:47
  • To edit approvers: I made the pending edit a CW answer - see below. – Takkat Nov 25 '12 at 09:18
  • @PengWu Great work! THanks. been complaining about my touchpad on thinkpad. – CppLearner Nov 29 '12 at 20:34
  • So I can toggle this on and off using xinput? That's fantastic. – Ehtesh Choudhury Mar 01 '13 at 20:20
  • 4
    "synclient -l | less" to see all available options – samus Jul 16 '13 at 02:39
  • 9
    In 12.10 and later, you can also use xinput -disable 12 to disable input device 12 (or xinput -enable 12 to enable it). See manual page xinput(1). – Lekensteyn Aug 25 '13 at 22:55
  • i added two buttons to launcher (in xfce, - don't know about gnome and unity but perhaps there's something similar there), one with the command "synclient TouchpadOff=1" and the other with "synclient TouchpadOff=0". This has the same basic functionality as touchpad-indicator but with the advantage of not having to install a new program. – lebatsnok Dec 04 '13 at 07:49
  • 2
    @Lekensteyn Don't you mean --disable and --enable, with 2 dashes each? That's what I do with xinput --disable 11 – Ehtesh Choudhury Jan 22 '14 at 06:54
  • @Shurane It seems that any leading number of dashes can be used, so enable, -enable and --enable (or even -------enable) are usable. Only --enable is documented though (xorg-input 1.6.1). I probably mentioned -enable because many other X tools use a single dash (e.g. -display) – Lekensteyn Jan 22 '14 at 09:39
  • Does work in 14.04 but then you may want to see @James-Brown answer – nha Jul 29 '14 at 17:45
  • I have created this answer to show how beautifully these commands can be used in Xfce/Xubuntu by using the Xfce launchers –  Oct 14 '14 at 16:04
  • Add this to your .bashrc to disable your touchpad at boot: xinput list | grep "Synaptics TouchPad" | awk '{ print $6 }' | awk -F= '{print $2}' | xargs -i xinput set-prop {} "Device Enabled" 0 – Geremy Jun 08 '15 at 07:03
  • @Geremy your trick works only if users open a terminal window. How to do the same at boot without run terminal? – smartmouse Dec 14 '15 at 12:08
  • The ids might slide if you plug another device (like a USB mouse), so don't put that line in your .bashrc or you might become unable to use your keyboard (in such a case, just remove the new USB device and reboot). – Nicolas Raoul Jan 15 '16 at 10:18
  • To enable and disable devices in lubuntu 16.04, use xinput enable or xinput disable respectively. – Ali_Waris Feb 04 '17 at 02:23
  • This is absolutely great! I've used this in the past in conjunction with udev to disable my touchpad when I attach a USB mouse. I've also used it to great success with keyboard shortcuts. – b_laoshi Apr 11 '17 at 02:01
  • 1
    @smartmouse, try putting Geremy's command in a script and then use the "Start Applications" program to run the script on login. – b_laoshi Apr 11 '17 at 02:05
  • 1
    @Lekensteyn you can even type xinput disable 12 with no dashes and it still works (at least for me). – mike239x Sep 21 '18 at 17:34
  • In my version (1.6.2) xinput without arguments returns the same list as xinput list. – Bas Peeters Oct 03 '18 at 01:50
  • 1
    To automatically disable the device whose name contains "touchpad": xinput set-prop \xinput --list | awk '/[Tt]ouch[Pp]ad.pointer/ {print $0}' | sed 's/.id=([0-9])./\1/'` "Device Enabled" 0` – pikiou Jan 11 '19 at 08:15
  • 1
    I made this a keyboard shortcut attached to Ctrl + Alt + P to toggle the touchpad on and off, including with a 2-second window popup to indicate the new touchpad state, while also handling fixing the scroll wheel speed problem via imwheel: https://askubuntu.com/questions/844151/enable-disable-touchpad/1109515#1109515 – Gabriel Staples Sep 12 '19 at 17:24
  • This is great, but how do I /toggle/ the touchpad? – Dan Bolser Feb 13 '20 at 15:11
108
  1. Search for mouse
  2. Click on Mouse and Touchpad
  3. Click off/on button to the right of touchpad settings.

step one

enter image description here

James
  • 3,213
  • 5
  • 21
  • 21
  • 3
    the big ON|OFF widget there is not available in 12.04, that's one one has to resort to the command line... – knocte Jan 29 '14 at 10:44
  • 1
    I've accidentally disabled the touchpad using this method,how do I enable it again without connecting a mouse to my computer? – Ziv May 19 '17 at 15:26
  • 1
    @Ziv You go to this Mouse & Touchpad window, keep clicking tab until the on/off toggler is focused, then press Enter. – paibamboo Oct 07 '17 at 09:57
  • this is a good way to do it. My touchpad keep re-enabling itself after I disable it through commandline – Hoàng Long Jul 26 '18 at 07:14
  • <3 ! <3 ! <3 ! <3 ! #damnthefreakyterminal – jave.web Feb 10 '20 at 19:31
42

check this link out: How to disable-enable touchpad in ubuntu 11.10

The answer found there is really neat:

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

After this you will get a switch in your notification area.

The only thing I would wish is to be able to set the switch key to Fn+F8 (which is a touchpad key switch on my keyboard...

anand mbs
  • 431
user27825
  • 629
35

Based on answer given by @Peng Wu I created a bash script that can be used...

#!/bin/bash

declare -i ID
ID=`xinput list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'`

xinput set-prop $ID "Device Enabled" 0

echo 'Touchpad has been disabled.'

You can manually run it or run it on start. Then you can make the script run at boot.

Another bash script to toggle touchpad:

#!/bin/bash

declare -i ID
ID=`xinput list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'`
declare -i STATE
STATE=`xinput list-props $ID|grep 'Device Enabled'|awk '{print $4}'`
if [ $STATE -eq 1 ]
then
    xinput disable $ID
    echo "Touchpad disabled."
else
    xinput enable $ID
    echo "Touchpad enabled."
fi
kiri
  • 28,246
  • 16
  • 81
  • 118
  • Would be cool to check the status code for the first script. I had to change the grep pattern to 'Touchpad in mouse emulation mode\s*id\=[0-9]{1,2}' – galath Sep 18 '15 at 21:53
  • On my system, it was Touchpad instead of TouchPad. To make it case-insensitive, just add an i to your grep options. – zondo Nov 05 '16 at 01:11
  • ruby touchpad toggle oneliner synclient TouchpadOff=$(synclient | ruby -ne 'puts ($_.match(/\\d+/)[0].to_i ^ 1) if /TouchpadOff/ =~ $_') – galva May 21 '18 at 08:23
  • for a one-line equivalent of this, see my answer – knocte Nov 26 '18 at 06:40
  • I made this a keyboard shortcut attached to Ctrl + Alt + P to toggle the touchpad on and off, including with a 2-second window popup to indicate the new touchpad state, while also handling fixing the scroll wheel speed problem via imwheel: https://askubuntu.com/questions/844151/enable-disable-touchpad/1109515#1109515. Also my answer searches xinput for both TouchPad and Touchpad, as sometimes the P is or is not capitalized, depending on the system, so the script may otherwise not work if you don't search for both. – Gabriel Staples Sep 12 '19 at 17:25
  • Isn't there a command to enquire the ID and status specifically? – Dan Bolser Feb 13 '20 at 15:10
28

Simply, in a terminal:

synclient TouchpadOff=1

However, the above seems to not work anymore in Ubuntu 16.04. In this case, then xinput still works:

xinput set-prop `xinput --list | awk '/[Tt]ouch[Pp]ad.*pointer/ {print $7}' | sed 's/id=\(.*\)/\1/'` "Device Enabled" 0
knocte
  • 996
  • Easiest solution, thanks. Accidentally touching the touchpad despite "Disable touchpad while typing" was on - was driving me a little crazy. This way I can just use a USB mouse instead and keep the keyboard behaving nicely. – David Thomas Sep 22 '14 at 23:37
  • Does this need sudo? It has no effect on my HP 6460b + Ubuntu 14.04 – itsols Dec 23 '15 at 03:22
  • it doesn't, and it works on my 14.04 – knocte Dec 23 '15 at 03:45
  • 1
    Works on Ubuntu 16.04, does not need sudo, one can easily create a keyboard shortcut with it: +1 :-) – Martin Thoma May 04 '16 at 16:34
  • Great solution especially when the id keeps changing. To make it adapt to letter case (I have Touchpad, not TouchPad) :

    xinput set-prop \xinput --list | awk '/[Tt]ouch[Pp]ad.pointer/ {print $0}' | sed 's/.id=([0-9])./\1/'` "Device Enabled" 0` .

    – pikiou Jan 11 '19 at 08:12
13

UPDATED SOLUTION:

Instead of xinput, with id variables that can change, better use synclient as indicated in other answers, like this.

sudo apt install xserver-xorg-input-synaptics

To turn off touchpad:

synclient TouchpadOff=1

To turn on:

synclient TouchpadOff=0

To be used with launchers or shortcuts as said below.


This is just the application of the commands in this answer under the present question. The solution below is limited to Xfce/Xubuntu, but although I made it by chance, I find it too elegant not too share it here. So, I created a separate question initially, just for Xubuntu. That question cannot but be a duplicate of this one and may be closed for this reason, that's why I dare to re-post that answer here.


It is about these two commands:

Disable:

xinput set-prop 15 "Device Enabled" 0

Enable:

xinput set-prop 15 "Device Enabled" 1

The id number will be found by running

xinput list
  • @galileopy - a simple shortcut is even more useful as far as I ca tell now –  Mar 06 '18 at 21:35
8

This is how to disable your touchpad automatically on startup This method will disable the pad more safely by name rather than by id. Here is how to get the name of your touchpad:

$ xinput list --name-only | grep -i Touchpad
ETPS/2 Elantech Touchpad

Create a bash script file. I added the file to ubuntu Startup Applications so it runs on every restart. Remember to make the file executable. Here are the contents:

#!/bin/bash
$ xinput disable 'ETPS/2 Elantech Touchpad'
  • Since you put it in a script, you may want to merge the two command above (for portability), even at cost of some fraction of seconds xinput -disable "$(xinput list --name-only | grep -i Touchpad)" – Hastur Mar 10 '20 at 12:10
5

I use the following script to enable/disable touchpad. I also assigned it to the keyboard shortcut.

Usage: toggle_touchpad.sh [on|off]

if you run without arguments then it will simply invert the current state of he touchpad.

#!/bin/bash
# toggle_touchpad.sh

is_off=`synclient | grep -Pio "TouchpadOff.*?(\d)" | grep -Eo "[01]"`

if [ -z "$1" ]; then
    echo "Inverting touchpad state"

    if [ "$is_off" -eq '0' ];then
        synclient TouchpadOff=1
        notify-send "Touchpad Disabled"
    else
        synclient TouchpadOff=0
        notify-send "Touchpad Enabled"
    fi

else

    if [ "$1" == "on" ]; then
        echo "Turning on touchpad"
        synclient TouchpadOff=0
        notify-send "Touchpad Enabled"
    elif [ "$1" == "off" ]; then
        echo "Turning off touchpad"
        synclient TouchpadOff=1
        notify-send "Touchpad Disabled"
    else
        echo "Unknown arg! Pass no args or on/off !"
    fi

fi
4

This worked for me in 11.10 :

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [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_1.3M             id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=13   [slave  keyboard (3)]

It displays all the input devices connected. Note that they all have an id. Since 12 is the id for my touchpad, running the following command will disable it.

xinput set-prop 12 "Device Enabled" 0

and I would put it in .bashrc or whatever except that I'm not sure that device 12 (actually 11 for me) is always the touchpad.

Now if I could just get the up-arrow in nautilius to work and see the .dirs

belacqua
  • 23,120
4

Define keyboard shortcuts

(this answer was copied from an invalid edit)

Instead of remembering that command every time you wish to enable/disable the touchpad, you can instead add it as a keyboard combination shortcut.

Under preferences in Keyboard Shortcuts click add. Give a name to the shortcut like "Disable Touchpad" or something and add the command you discovered above

xinput set-prop <id> "Device Enabled" 0

and click apply. Then add another shortcut called "Enable Touchpad" or something similar to the first and change the previous command to a 1 at the end

xinput set-prop <id> "Device Enabled" 1

those are the off/on respectivly.

Now that those are added, click on Enable Touchpad's Shortcut column (should say 'disabled') and type the keyboard shortcut you want it to be, I chose Win+1 (Hold Windows Key and press the number 1). Do the same for Disable Touchpad, I chose Win+2.

Now Win+1 enables my touchpad and Win+2 disables it.

Takkat
  • 142,284
4

In my case, fn+F9 is mapped into Touchpad toggle.

But the key does nothing just showing touch pad icon on the right-top of the screen like this.

enter image description here


Here is a solution for toggling touchpad just by pressing a shortcut.

1. Getting id of your touchpad

$ xinput list

2. Writing a script for toggling touchpad

So I got a bash script file for toggling touchpad with 'xinput' command(original script can be found here).

In my case, the id of touch pad was 12.

#!/bin/bash

device=12
state=`xinput list-props "$device" | grep "Device Enabled" | grep -o "[01]$"`

if [ "$state" -eq '1' ];then
  xinput --disable "$device"
else
  xinput --enable "$device"
fi

Save the above script file as .toggleTouchPad.sh at where you want.

3. Keyboard shortcut for running the script

And last step is adding keyboard shortcut to run the script file.

So just write sh /PATH/TO/SCRIPT in the Command of your shortcut window .

enter image description here

4. Try the shortcut

Press the shortcut and check if touchpad is toggled.

It worked at ASUS A556UA Laptop and Ubuntu14.04 x64 installed.


Thing to be improved.

  • assigning Touchpad toggle key to the above custom shortcut would not work
  • it just shows touch pad icon on the right-top of the screen
  • so I had to assign another key(super+F9) rather than Touchpad toggle(fn+F9) key.

enter image description here

please suggest a way to assign Touchpad toggle key to a custom shortcut for complete solution

JaeJun LEE
  • 141
  • 5
4

For Ubuntu 16.04

For disable touchpad:

xinput --disable $(xinput --list | grep -i 'touchpad' | grep -o 'id=[0-9]*' | sed 's/id=//') 

and for enable touchpad:

xinput --enable $(xinput --list | grep -i 'touchpad' | grep -o 'id=[0-9]*' | sed 's/id=//')
Andrey Izman
  • 387
  • 3
  • 6
3

https://bitbucket.org/barseghyanartur/xinput

It's a very tiny code which allows you to disable/enable the touchpad from terminal.

Simply follow the Instructions below:

Install:

$ pip install xinput

Disable touchpad:

$ disable-touchpad

Enable touchpad:

$ enable-touchpad
3

First check if your laptop has enable/disable touchpad keyboard shortcut, by any chance! On my Lenovo Thinkpad T500 it's Fn+F8

anand mbs
  • 431
Bucic
  • 4,044
  • Great solution! And its KISS: Keep it super simple. – Esteve Feb 05 '14 at 09:49
  • 1
    It seems too specific. Not working with my n550jv. Peng Wu comments did the trick. – lcoq Mar 03 '14 at 14:23
  • 1
    Most laptops with touchpads will have such a key, but there's no guarantee it will work. If I use xev or xinput and attempt to use the button on my G700 it doesn't register a darn thing. Even evemu-record doesn't register anything, and that's at the kernel level. If the kernel can't see it, there's nothing much to be done about it except fix device drivers. That being said, this is a great solution, but not a reliable one for all use cases. – wxl Jan 18 '15 at 15:38
2

install the Jupiter app. You can disable the touchpad with it and it is remembered. This has worked effectively for me on both a Lenovo IdeaPad and ThinkPad on 11.04, 11.10, and 12.04.

kos
  • 35,891
Jeem
  • 29
2

Just add a couple of bash functions to your .bashrc to give you a togggle...

#toggle-touchpad on|off
function touchpadon  { /usr/bin/xinput --enable $(xinput --list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}') ; echo "touchpad enabled";}
function touchpadoff  { /usr/bin/xinput --disable $(xinput --list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}') ; echo "touchpad disabled";}
Amos Folarin
  • 1,154
2

I tried using the laptop function key (fn) to disable the pointer and it works. It did not work during my 11.04 days though, so give that a try.

anand mbs
  • 431
Fayaz
  • 39
2

It is actually very simple to disable touchpad in Ubuntu. Just remove the package xserver-xorg-input-synaptics that is required for using touchpads in Ubuntu!

sudo apt-get remove xserver-xorg-input-synaptics

It is the only way to disable touchpad permanently that worked for me. The other ways were only temporary:

xinput list
xinput set-prop IDOFTOUCHPAD "Device Enabled" 0 
synclient TouchpadOff=1 

I am using LXDE and I was not able to automatically disable the touchpad by adding these lines to ~/.config/lxsession/LXDE/autostart or /etc/xdg/lxsession/LXDE/autostart with a @-prefix. It was just ignored.

And I tried disabling touchpad with dconf-editor (org.gnome.desktop.peripherals.touchpad) and gconf-editor (desktop.gnome.peripherals.TOUCHPADNAME), but both did not work. The settings on dconf-editor have no effect at all and on gconf-editor it keeps showing the error message "This key has no schema".

mkdrive2
  • 206
  • 1
  • 8
1

So, by combining Krzysztof Tomaszewski and JaeJun LEE's answers I came to this solution.

Create the following toggleTouchPad.sh script and save it wherever you want:

#!/bin/bash
device=14
state=`xinput list-props "$device" | grep "Device Enabled" | grep -o "[01]$"`
if [ "$state" -eq '1' ];then
  xinput --disable "$device" && sleep 1 && xdotool key 201
else
  xinput --enable "$device" && sleep 1 && xdotool key 200
fi

where 14 is your TouchDevice Id (refer to JaeJun LEE's answer)

  1. Go to Ubuntu Settings -> Devices -> Keyboard

  2. At the end of the list, click on + to add a new custom shortcut

  3. Name it Toggle Touchpad, with Command /path/to/.toggleTouchPad.sh and whatever key combination you'd want (I've just chosen Super + F7).

Now, whenever you hit your chosen key combination, it not only toggle the Touchpad but it also shows a notification icon thanks to xdotool

gcpdev
  • 111
  • Just a couple of notes. On Kubuntu 18.04LTS xdotool are not installed by default. You can use notify-send Touchpad Disabled or Enable instead. You may find useful to add a line to autodetect the device number (14) instead to hardcode it,just to extend the lifespan of the script, e.g. (device=$(xinput --list | grep -i 'touchpad' | grep -o 'id=[0-9]*' | sed 's/id=//')) – Hastur Mar 10 '20 at 12:01
1

My solution is the following tp script:

#!/bin/bash
TT=`xinput --list | grep -i touchpad | sed -e "
s/(// 
s/)//
s/ //g
"`
set $TT

(( $2 ))

xinput list | grep -iq mouse &&{
   xinput --disable $id
}||{
   xinput --enable $id
}

The touchpad is disabled if a mouse is detected, and enable if not.
The touchpad id is found by the script.

zx485
  • 2,426
1

Like so often this is not really one problem but two.
So first we get the touchpads id.
Then we can disable and enable, that given id.

# Get the touchpad's id. 
touchpad_id=$(
    xinput list                 |
        grep Touchpad           |
        grep -E -o id=[0-9]*    |   
        grep -o [0-9]*          \
        ;
    );

Enable.

xinput --enable ${touchpad_id};

Disable.

xinput --disable ${touchpad_id};

1

If your laptop keyboard doesn't have a touchpad on/off special-function key, maybe you can find an on-screen virtual keyboard that simulates it (although I haven't found one).

Short of that, this works well:

sudo apt-get install gpointing-device-settings

enter image description here

1

What worked for me on Ubuntu 12.04 LTS with Dell Laptop

I wanted disable the pointer which is in the middle of the keyboard and creates a lot of issues while typing. So:

$ xinput list
 ⎡ Virtual core pointer                     id=2
 ⎜   ↳ Virtual core XTEST pointer               id=4
 ⎜   ↳ Wacom Graphire2 4x5 eraser               id=9
 ⎜   ↳ Wacom Graphire2 4x5 cursor               id=10
 ⎜   ↳ Wacom Graphire2 4x5                      id=11
 ⎜   ↳ AlpsPS/2 ALPS DualPoint TouchPad         id=14
 ⎜   ↳ Macintosh mouse button emulation         id=15
 ⎜   ↳ DualPoint Stick                          id=13
 ⎣ Virtual core keyboard                    id=3
     ↳ Virtual core XTEST keyboard              id=5
     ↳ Video Bus                                id=6
     ↳ Power Button                             id=7
     ↳ Sleep Button                             id=8
     ↳ AT Translated Set 2 keyboard             id=12

The device I want to disable has id 13. Use xinput to list its properties:

$ xinput -list-props 13
 Device 'DualPoint Stick':
    Device Enabled (115):   0
 [...several lines removed...]
 $ xinput -set-prop 13 115 0

This has disabled the Dualpoint stick. But none of the other answers worked for me. I did

Install dconf-tools:

sudo apt-get install  dconf-tools
dconf-editor

Then go to org -> gnome -> settings-daemon -> peripherals -> touchpad and uncheck touchpad-enabled field

Zanna
  • 70,465
  • The small Nob! between G H and B keys is actually mounted on a small square peg, pull it out with a pair of tweezers! This will prevent you from hitting it when typing - and if needed later just put it back (so do not throw it away) Trying to disable it through software might impede the functionality of your mouse or touch-pad! – Ken Mollerup Apr 21 '16 at 08:40
1

I found a nice solution of creating a key binding that will invoke the command:

xdotool key 199

where 199 is a keycode recognized as XF86TouchpadToggle. This way one can make a key combination of his/her choice to behave like a special key some laptops have to toggle the touchpad as desktop environments like Mate or Cinnamon handle it great. You can check keycodes by this command:

xmodmap -pke

I have created a how-to on my blog: https://artofcode.wordpress.com/2017/10/01/how-to-add-a-key-binding-to-toggle-a-touchpad-under-linux/

0

To disable my dell latitude's middle stick, I put this on .profile of Ubuntu so every-time I start/reboot my laptop, it will disable that input.

I used the --id-only to avoid mismatch in grep

declare -i ID
ID=`xinput list --id-only 'AlpsPS/2 ALPS DualPoint Stick' | grep -Eo '[0-9]{1,2$
declare -i STATE
STATE=`xinput list-props $ID|grep 'Device Enabled'|awk '{print $4}'`
if [ $STATE -eq 1 ]
then
    echo "id" $ID
    xinput disable $ID
    echo "Touchpad disabled."
else
    echo "id" $ID
    xinput enable $ID
    echo "Touchpad enabled."
fi
Ace
  • 1
0

Alternative: using awk and xbindkeys (automatic detection)

First please add touchpad_toggle script in your ~/bin directory:

#!/bin/bash
tpad_device=`xinput list | grep Touchpad | awk '{print $6}' | sed -e 's/id=//'`
tpad_enable=`xinput --list-props $tpad_device | grep 'Device Enable' | awk '{print $4}'`

if [ "$tpad_enable" == "1" ]; then
  xinput --disable $tpad_device
elif [ "$tpad_enable" == "0" ]; then
  xinput --enable $tpad_device
else
  echo "!WARNNING touchpad device not found!"
fi

In your ~/.xbindkeysrc add:

#touchpad_toggle
"touchpad_toggle"
    m:0x0 + c:199
    XF86TouchpadToggle 
Hpsaturn
  • 101
  • 2
0

I created a script before on another question: https://askubuntu.com/a/874865/433961

It finds and toggles TouchPad device. You can configure a custom shortcut to it in system settings.

#!/bin/bash

read TPdevice <<< $( xinput | sed -nre '/TouchPad|Touchpad/s/.id=([0-9]).*/\1/p' ) state=$( xinput list-props "$TPdevice" | grep "Device Enabled" | grep -o "[01]$" )

if [ "$state" -eq '1' ];then xinput --disable "$TPdevice" && notify-send -i emblem-nowrite "Touchpad" "Disabled" else xinput --enable "$TPdevice" && notify-send -i input-touchpad "Touchpad" "Enabled" fi

I'm setting Ctrl+Shift+F9 for toggle touchpad enable and disable like this:

enter image description here

Update: You may need to make your script to executable with command chmod +x filename or input /bin/bash /filepath to Command field of Custom shortcut window.

0

Alternative solution which works for all touchpads, no id needed.

open a terminal and write "gedit toggle_touchpad.sh"

#!/bin/bash
condition="$(gsettings get org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled)"

if [ "$condition" == "false" ]; then
     gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled true
elif [ "$condition" == "true" ]; then
    gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled false
fi

Save the file and exit. Now you have a file with the name "toggle_touchpad.sh"

Run the command chmod +x toggle_touchpad.sh to make the file executable.

Place the file in any folder you like. Let us assume that you have it in the folder /home/username/myscripts/.

From the menu on the top-right go to system-settings->keyboard->shortcuts->custom-shortcuts.

Create a new shortcut and put as name whatever you want. Put as command /home<username>;/myscripts/toggle_touchpad.sh where "username" is your username

Assign whatever keyboard shortcut you want.

Ready :)

P.S. Personally I put the file in the /opt/myscripts/ folder but in order to put it there you should run the following commands after creating the file:

sudo mkdir /opt/myscripts/

sudo mv toggle_touchpad.sh /opt/myscripts/

sudo chown <username>:<username> /opt/myscripts/toggle_touchpad.sh

chmod +x  /opt/myscripts/toggle_touchpad.sh

where "username" is your username

Then when you will create the shortcut you will use the path "/opt/myscripts/toggle_touchpad.sh" instead of the one mentioned above

orestis
  • 1,408
0

This method works, but I can't seem to use the "win" button. So I used the CtrlF1 & F2 for it.

Currently my laptop OS is ubuntu 14.04LTS.

Oh, need to find out the xinput < id > with the command below. For Ubuntu 14.04, it is the "SynPS/2 Synaptics TouchPad"

xinput list
SynPS/2 Synaptics TouchPad                  id=###
remyx
  • 9
  • 2
0

I tried all the previous answers here without success.
What worked for me on Ubuntu 16.10 was

killall syndaemon 
syndaemon -i 1 -KRd

You may want to change the value 1 to 0.5.

Zanna
  • 70,465
Rajeev Jayaswal
  • 231
  • 2
  • 8