The Synaptic Touchpad is not disabled automatically when an external mouse is attached.

Bug #116919 reported by Babbage
40
This bug affects 5 people
Affects Status Importance Assigned to Milestone
xserver-xorg-input-synaptics (Ubuntu)
Confirmed
Wishlist
Unassigned

Bug Description

The Synaptics Touchpad on my Dell Inspiron 9400 (European model number) does not disable automatically when a USB external mouse is attached, before or after boot. There was an option to do this with the proprietary Synaptics driver when used with this notebook under Windows ( it may have been the default.) I think a lot of Dell notebook users who are familiar with this functionality will miss it.) Also there is no user configurable GUI option to disable the touchpad when an external mouse is present, for example there's no option in the System, Preferences menu. This problem is very annoying when typing as the touchpad is still active. Also there may be confusion between Synaptic Software Package Manager and Synaptic Touchpad Configuration, if this GUI option is implemented.

Revision history for this message
Jayson Vaughn (thedonvaughn) wrote :

Hello,
Thank you for your bug report. While I'm not 100% sure if it's possible to disable synaptic touchpad when a USB mouse is plugged in automatically, there is a quick solution for you to disable and enable at will. Please review this link:
http://ubuntu.wordpress.com/2006/03/24/disable-synaptics-touchpad/
Hope this helps!

Revision history for this message
Jayson Vaughn (thedonvaughn) wrote :

Hello,
Also this link shows users who are experiencing the same issue you have.
http://ubuntuforums.org/showthread.php?t=102604&page=1

Revision history for this message
Babbage (danieldelahoyde) wrote :

Thanks for your replies. After reading the forum posts I learned there's a setting in the Dell BIOS under Touchpad/Mouse that fixes this issue. The default is to leave the touchpad on when a mouse is present I've changed this setting to disable the touchpad when a mouse is present.

There are actually two options in the BIOS, one is to disable the touchpad when a PS2 mouse is present, the other is to disable the touchpad when a serial mouse is present. The serial mouse option is the one that works. These choices make no sense at all because this laptop has no serial or PS2 ports.

I think this is a compromise solution because it would be better to be able to switch it on and off as required using software. In the Synaptics proprietary software you set an option to disable the touchpad if a mouse is present. The software does this each time, but the touchpad be switched back on at anytime using an icon in the systray. I've been looking at setting a keyboard shortcut for SHMConfig switches "$synclient TouchpadOff=1" and "$synclient TouchpadOff=0" It seems not so easily done, although I've KeyTouch installed.

Revision history for this message
mon (javiermon-deactivatedaccount) wrote :

Hi

I think a posible solution for this is to create a udev rule that when an usb device recognized as a mouse runs the synclient TouchpadOff=1 command, and when unplugged does the opposite.

I'm not sure if it's easy to grep the udev info to recognize the mouse.

This would be great for laptops without a disable touchpad button (for instance mac's)

thanks

Revision history for this message
Babbage (danieldelahoyde) wrote :

Hi Kmon, thanks for your reply. I was browsing the available applications in Add/Remove Programs, and I found this package: http://packages.ubuntu.com/feisty/utils/gsynaptics It's a community maintained utility for changing the Synaptics Touchpad settings. (Although once installed you still need to set a switch in SHMConfig to enable the utility.) This is exactly the kind of software GUI is was thinking of, and it does the job well.
I can set the utility to turn the touchpad off, that works perfectly. I can also adjust the touchpad sensitivity, as well as the tapping and scrolling options. Unfortunately, it doesn't turn the touchpad back on if I boot without a mouse. After turning the touchpad off, if I reboot with no mouse, the GSynaptics setting remains and the touchpad is still off. So I've no mouse or touchpad. It's difficult to turn the touchpad back on using GSynaptics because I can't use the touchpad! I'll have to set up a keyboard shortcut for this program, then it'll be a perfect solution using GSynaptics.

Revision history for this message
mon (javiermon-deactivatedaccount) wrote :

Here's some info on how to do it for the macbook:

http://gentoo-wiki.com/Macbook#Touchpad_Fixes

It uses udev and appletouch driver, maybe a more generic driver can be used?

Changed in xserver-xorg-input-synaptics:
assignee: nobody → ubuntu-x-swat
importance: Undecided → Wishlist
status: New → Confirmed
Revision history for this message
djtm (djtm) wrote :

Hey,
I made a generic version inspired by the appletouch howto and by the script
/usr/share/doc/xserver-xorg-input-synaptics/script/usbmouse
from xserver-xorg-input-synaptics

udev rule: /etc/udev/rules.d/85-synaptics.rules
# automaticly disable touchpad when usb mouse present
# (c) 2008 D. Jansen < d (dash) jansen (at) gmx (dot) de >
# published under the GNU GPL 3.0, other licenses on request
SUBSYSTEM=="usb", SYSFS{product}=="*Mouse*"
ACTION=="add", SUBSYSTEM=="input", ID_CLASS="mouse", RUN+="/home/djtm/scripts/touchpad-udev"
ACTION=="remove", SUBSYSTEM=="input", ID_CLASS="mouse", RUN+="/home/djtm/scripts/touchpad-udev"

and the script /home/djtm/scripts/touchpad-udev

#!/bin/bash
# automaticly disable touchpad when usb mouse present
# (c) 2008 D. Jansen < d (dash) jansen (at) gmx (dot) de >
# published under the GNU GPL 3.0, other licenses on request
SC=`which synclient`
GREP=`which grep`

# Touchpad disable for udev

            if [ "`$GREP -e Mouse /proc/bus/input/devices `" ]; then
                $SC TouchpadOff=1
            else
                $SC TouchpadOff=0
            fi
# published under the GNU GPL 3.0, other licenses on request

Revision history for this message
djtm (djtm) wrote :

I made a fix. Please check for possibility to integrate into default distribution (for notebooks).

Changed in xserver-xorg-input-synaptics:
status: Confirmed → In Progress
Revision history for this message
djtm (djtm) wrote :

I forgot to mention: I think it requires this setting in xorg.conf
in
Section "InputDevice"
        Identifier "Synaptics Touchpad"

insert a line
        Option "SHMConfig" "On"

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

If SHMConfig needs to be turned on it's a no-go.

Changed in xserver-xorg-input-synaptics:
assignee: ubuntu-x-swat → nobody
status: In Progress → Confirmed
Revision history for this message
djtm (djtm) wrote :

True. It's just too insecure.

Does anyone know another method of temporarily disabling the touchpad?
Maybe the new Xorg offers a more flexible configuration?

The script should probably reside in
/usr/lib/udev/
and probably also be called once after X has come up
(otherwise the touchpad would not be disabled
when X is started and the mouse had already been plugged in.)

Revision history for this message
William Grant (wgrant) wrote :

Input properties can do this without SHMConfig now, but there's no UI to do it.

Revision history for this message
D (dj-lp) wrote :

Do you mean there's no gui or no program or way at all currently? Could it be done with a script? How would it be done?

Revision history for this message
William Grant (wgrant) wrote :

To disable:
xinput set-int-prop "SynPS/2 Synaptics TouchPad" "Synaptics Off" 8 1

To enable:
xinput set-int-prop "SynPS/2 Synaptics TouchPad" "Synaptics Off" 8 0

Revision history for this message
djtm (djtm) wrote :

I can successfully set it and confirm that with list-props, but it has no effect for me. Any idea why?

Revision history for this message
djtm (djtm) wrote :

Okay, I need to use
xinput set-int-prop "Synaptics Touchpad" "Synaptics Off" 8 1

Revision history for this message
djtm (djtm) wrote :

Great, thanks! :)

Now it could be integrated to Ubuntu.

Revision history for this message
vicnov (dreamland-skib2) wrote :

In Ubuntu 8.10 I have looked into System->Preferences->Mouse menu, then selected Touchpad tab, there is "enable touchpad" checkbox there! And it works!!!

Revision history for this message
Borim (borim) wrote :

In Ubuntu 11.10 the feature "auto disabling the touchpad, when a usb mouse is plugged" is still not available. Also I do not want to enable SHMConfig. Thats why I help myself with following udev rule:

SUBSYSTEM=="input", BUS=="usb", ACTION=="add", ENV{ID_INPUT_MOUSE}=="1", RUN+="/sbin/rmmod psmouse"
SUBSYSTEM=="input", BUS=="usb", ACTION=="remove", ENV{ID_INPUT_MOUSE}=="1", RUN+="/sbin/modprobe psmouse"

I am not 100% happy with this solution, but it works. I do not like to remove a kernel modul just for disabling a device. Does someone know a way to disable the touchpad with a setting, like done with synclient or xinput, but with disabled SHMConfig?

It would be great if the auto disabling feature would find its way into ubuntu, after such a long time.

Cheers Borim

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.