Disable Touchpad while typing doesn't work consistently - hardware-specific?

Bug #27541 reported by Nikolaus Rath
46
This bug affects 8 people
Affects Status Importance Assigned to Milestone
gnome-settings-daemon (Ubuntu)
Confirmed
Wishlist
Unassigned
ubiquity (Ubuntu)
Invalid
Undecided
Unassigned
xserver-xorg-input-synaptics (Baltix)
Confirmed
Undecided
Unassigned

Bug Description

On Laptops with Touchpads, the touchpad often accidentally generates events when
the keyboard is used. Blocking the touchpad for a couple of ms after each keypress solves this problem.

This can be extremely easily implemented by calling syndaemon upon login and adding "SHMConfig on" to the X11 configuration. I think this is something that should be done by the installer in the default configuration as well.

Daniel Stone (daniels)
Changed in xorg-driver-synaptics:
assignee: daniels → nobody
Revision history for this message
Markus Kienast (elias1884) wrote :

I want this too! This would be great!

Revision history for this message
Markus Kienast (elias1884) wrote :
Revision history for this message
Markus Kienast (elias1884) wrote :

seems to be the same as in bug #55235.

Revision history for this message
Simon Law (sfllaw) wrote :

Thanks for your report. Your idea might get more attention and have
the possibility of being implemented if you would submit a
specification for this.

You should first check whether it already exists at the Ubuntu specs
page (https://launchpad.net/distros/ubuntu/+specs) in Launchpad. If
that is the case, feel free to contact the drafter of that spec about
your comments/suggestions. Otherwise you can start writing a spec
following the steps described in
        https://wiki.ubuntu.com/FeatureSpecifications.

Changed in xorg-driver-synaptics:
status: Unconfirmed → Confirmed
Revision history for this message
Robbie Groenewoudt (dutchmega) wrote :

http://ubuntuforums.org/showthread.php?t=271052

There is a simple solution to this. I doubt this will hard to implement in Feisty

Revision history for this message
Nikolaus Rath (nikratio) wrote : Re: Touchpad should block while typing

Reassigning, is not an X11 bug but a configuration problem.

description: updated
Revision history for this message
Nikolaus Rath (nikratio) wrote :

Actually, it may be an X11 problem, since according to bug #37234 this allows anyone to change the touchpad settings, not only the user logged in X11. But it might still be reasonable to at least ask for this during installation.

Revision history for this message
Colin Watson (cjwatson) wrote :

This is excessively specific for the installer; I'd very much rather not have it get into this sort of fine detail for particular items of hardware when fundamentally xorg's default configuration should just be better, and/or the synaptics driver should be improved to allow it to be better. I don't want to go down this road in the installer.

Changed in ubiquity:
status: Unconfirmed → Rejected
Revision history for this message
Roberto Sarrionandia (rbs-tito) wrote :

What about things like holding ctrl while clicking multiple items?

Revision history for this message
Nikolaus Rath (nikratio) wrote :

Works fine, modifier keys aren't blocked.

Revision history for this message
Adam Niedling (krychek) wrote :

Wouldn't it create problems if the touchpad would be constantly turning on and off? I think people should learn how to type without touching the touchpad. I believe laptops are designed that way to make it possible. Can't this bug be closed?

Revision history for this message
Nikolaus Rath (nikratio) wrote :

I can't imagine any possible problems - what problems are you thinking of?

In my opinion it is also very difficult not to touch the touchpad. On all the laptops I have seen the touchpad is directly below the keyboard, which is the place where one naturally places the wrists when typing. I don't think this is a matter of learning how to type properly - doing it differently would require to keep the wrists in the air at all times - an ergonomic nightmare. So I would strongly argue against closing the bug.

Have you seen any laptops where the touchpad is somewhere else?

Revision history for this message
Adam Niedling (krychek) wrote :

Touchpad is in the middle right between the wrists.. It never caused any trouble to me and of course my wrists are not in the air.
I still don't think this is a good idea. I'm happy that my touchpad works I don't wanna turn it off, maybe it won't turn back on.. Usually no hardware keep turning on and off do they?

Revision history for this message
Nikolaus Rath (nikratio) wrote :

The touchpad is not turned off physically, the synaptic driver simply doesn't translate the signals to mouse events anymore. It happens completely in software, so it cannot affect the touchpad at all.

Revision history for this message
Adam Niedling (krychek) wrote :

I don't know. Maybe you should add this idea to brainstorm. Let's see if the people agree or not.

Revision history for this message
Mika Fischer (zoop) wrote :

I barely ever use the touchpad on my laptop. The point now is this:

In Ubuntu, it happens within minutes after booting that the cursor moves/drags to strange places while I type. Thank god most programs have an undo function! At that point I turn off the touchpad via a hotkey.

Under Windows, I have no such problems at all! Whether Windows disables the touchpad, uses writs detection or just generally lowers the sensitivity, I don't know and frankly I don't care. I just want my touchpad to work just as well in Ubuntu.

So this really is a bug and should stay open.

As for brainstorm: http://brainstorm.ubuntu.com/idea/126/

Revision history for this message
Colin Watson (cjwatson) wrote :

I don't think the fact that Adam never finds this a problem is justification for closing it, certainly ... many people do indeed find this to be a problem and laptop design is not universally ideal.

Revision history for this message
Lex Ross (lross) wrote :

As of Ubuntu 8.10 HAL is being used rather than Xorg.conf
To disable touchpad while typing do the following.

1. Enable SHM in HAL by placing shmconfig.fdi file onto /etc/hal/fdi/policy
2. Activate syndaemon on startup by placing syndaemon.desktop file onto /etc/xdg/autostart

To do it in one easy step:

cd / ; sudo tar zxvf SHM_hal+syndaemon.tgz

With SHM enabled in HAL the button that disables touchpad on my laptop now works as well.

Hope this will make its way into future Ubuntu releases. Despite security issues with shared memory enabled, I simply cannot tolerate the inconvenience on a laptop.

Hope this fix will help you.

Revision history for this message
Paul Sladen (sladen) wrote :

This appears to have been done (badly) by default in Ubuntu 9.10...

Revision history for this message
Stanley Sokolow (overbyte) wrote :

This is still a problem in Ubuntu 10.04 LTS. There is a setting in menu System > Preferences > Mouse > Touchpad that claims to disable touchpad clicks while typing. However, this is implemented in gnome-settings-daemon poorly. In that daemon, in function set_disable_w_typing, the settings manager spawns syndaemon with a parameter "-i 0.5", meaning to set the delay after a keypress to one-half second (500 ms). During that delay after a keypress, the touchpad is temporarily ignored. If you read the man page for syndaemon, you'll see that the default delay interval is 2 seconds. 500ms is too short. In effect, whether or not the user checks the setting in preferences, the touchpad is not ignored while typing. I've had to temporarily disable the touchpad completely when I'm doing a lot of typing to avoid accidental chaos when the heel of a hand brushes against the touchpad during typing.

To work around this too-short delay, I killed syndaemon and re-spawned it from the terminal with a 2 second delay "-i 2" parameter. This so far seems to be working fine, as intended. So the right fix would be to change line #511 in the gnome-settings-manager http://git.gnome.org/browse/gnome-settings-daemon/tree/plugins/mouse/gsd-mouse-manager.c?id=46cfbb45bac09fd86f13a1995a4b4b2742b39c25#n498 . The parameter "0.5" should be "2" or you could remove the -i parameter and it's argument completely, allowing the default built into syndaemon to take effect. Even better, add a slider in the mouse preferences touchpad tab to let the user choose the delay that works best for him/her.

Meanwhile, I'm going to try adding some shell script commands in my rc.local file to kill syndaemon and run it in daemon mode with a better interval. This is what I tried in the terminal:
kill `ps -C syndaemon -o pid=`
syndaemon -d -i 2 -k

I'm not sure why the -k parameter is important, but it's in the gnome-settings-daemon code already, so I'll just put it in my script, too. The kill command fetches the process id number using the ps command, then kills that process. Then the syndaemon command re-spawns. I'm going to try this until an update to gnome-settings-daemon fixes this bug.

Please, someone, be sure that the maintainer for gnome-settings-manager gets a copy of this comment.

Revision history for this message
Claudio Pighin (cpighin) wrote :

This is still a problem in Ubuntu 10.10 which I installed in my Acer Aspire 8530G and I opened Bug #646860 to solve it.

This my experience.

I have just tried a suggestion to palce two sheets of paper on the palm rest (one on the right of tochpad, one on the left) and I did not experied capricious behaviours of the pointer which did not opened unwanted windows or application. Will this behaviour be permanent? I will report after a few days of work.

Than I red this bug discussion and I found it very useful, in particular previous comment #20.

I wanted to apply the solution given there, but I could not, because I do not know what to do and which file has to be to modified.

I ask Stanley Sokolow to explain how to do, considering that I am not an expert.

Revision history for this message
Mike (bild85) wrote :

This bug affects me too. On my MacbookPro 6-2, I see that syndaemon is running, but it doesn't seem to be working as I would expect. Here's my ps output which shows how syndaemon was started:
$ ps aux | grep syndaemon
michael 1827 0.0 0.0 29180 1072 ? S Oct30 0:20 syndaemon -i 0.5 -k

This is the standard setting before I made any changes. I think .5 is enough of a delay, but I did a test and found that even when it was supposedly "disabled", it still takes clicks from my touchpad:

Opened a terminal and right-clicked the title bar and chose: 'Always on top'
Entered the command:
syndaemon -i 0.5 -k

As I typed in another field, I saw:
Disable
Enable
Disable
Enable

I also randomly tapped on the touchpad as I was typing. I was able to get the mouse click to register even when the sysdaemon said: "disabled." It wasn't every time, but certainly enough to cause problems during normal use.

I also tried changing the timeout from .5 sec to 10 sec, and repeated the above experiment. It showed the same results: even though it stated "Disabled", the mousepad continued to register clicks and reposition my cursor (though not immediately.)

Revision history for this message
Claudio Pighin (cpighin) wrote :

While waiting for clear step by step instructions (my mother tongue is not English and I'm not expert) to modify delay parameter "-i " to help on solving the issue with results from my tests, I inform that the solution reported on comment #21 (thick paper on the palm rest) seems to work at moment (no unwanted openings of windows or applications, no unwanted movement of the cursor).

Of course a software solution should be preferred!

Revision history for this message
Henrique Ferreiro (henrique-ferreiro) wrote :

As stated in comment #20, touchpad blocks correctly, it is only a matter of the number of seconds the touchpad is blocked.

I think the correct solution is to provide the blocking time as a gconf setting and still use 0.5s as a reasonable default.

affects: xserver-xorg-input-synaptics (Ubuntu) → gnome-settings-daemon (Ubuntu)
Changed in gnome-settings-daemon (Ubuntu):
status: Confirmed → New
summary: - Touchpad should block while typing
+ Touchpad blocking time should be a gconf setting
Revision history for this message
Mike (bild85) wrote : Re: Touchpad blocking time should be a gconf setting

Henrique, I respectfully disagree with the assertion that it is simply a matter of timing. This is very reproducible for me regardless of the delay set with syndaemon. If you have access to a MacBook Pro 6,2 or similar hardware, I encourage you to try this test to see it for yourself:

Open a terminal and right-click the title bar and chose: 'Always on top', and enter the following:
 syndaemon -i 10 -k
That should disable the touchpad from activating for 10 seconds after the last keystroke. Overkill I know, but necessary to demonstrate the error and remove any speculation about this being a timing issue.

Here is how you can see the bug:
With that terminal open and 'on-top', it should be toggling between 'enabled' and 'disabled'. Type some text in a field (respond to this comment, for example.) Be sure to position your cursor in a position where it will be obvious if it registers a click (at the top, left-most line of this text box, for example.)

As you type, occasionally tap the touchpad. If your hardware is also experiencing this bug, you will notice that the cursor is repositioned and your typing jumps to the upper-left of the textbox, even though it has been much less than 10 seconds since your last kestroke. Not every time, but it does happen.

If this happens while you are attempting to compose an email, writing a paragraph or sentence, or simply filling in a single textfield, I suspect you too would quickly become extremely frustrated with this bug.

If this isn't reproducible on the hardware you have, I recommend opening a 'wishlist' item for the gconf setting discussed above.

Mike (bild85)
summary: - Touchpad blocking time should be a gconf setting
+ Disable Touchpad while typing doesn't work consistently - hardware-
+ specific?
Revision history for this message
Claudio Pighin (cpighin) wrote :

itismike, i waited till oday to reply to your last comment to have time to monitor my pc Acer Aspire 8530 and now I can say that you are write: according to my experience the issue it is not simply a matter of timing.

As a matter of fact I did the test you propose using few times following commands:
syndaemon -i 10 -k
syndaemon -i 2 -k
syndaemon -i 1 -k
syndaemon -i 10 -k
and I found that occasionally I had no problems but sometimes, for unknown reasons, my cursor jumped repositioning itself to the upper-left area of the textbox (not always exactly in the upper-left corner!).
Now, while I am typing, this behaviour happened few times while my terminal showed "disable".

Mike (bild85)
Changed in xserver-xorg-input-synaptics (Baltix):
status: New → Confirmed
Revision history for this message
alexcastanaza (dacastanaza) wrote :

I'm also affected by this bug, with a macbook pro 6,2. And I also agree that a gconf parameter would be NOT user-friendly. A graphical item, like a numeric value or a slide bar in the touchpad settings box for the time delay after a key press should be the solution, besides fixing the bug why sometimes the delay is not respected.
Thank you.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in gnome-settings-daemon (Ubuntu):
status: New → Confirmed
Revision history for this message
Claudio Pighin (cpighin) wrote :

Few days ago a received an information, that I'm not able to find now, that the problem could be caused by the AC adapter in use with certain laptops and it was suggested to try working only with internal battery (AC adapter disconnected).

I did several tests and I verified that for my Acer Aspire 8530 it's true! In other words, if I encounter touch-pad crazy problems, I disconnect the AC adapter and the touch-pad works fine.

It could be interesting if other laptop users do similar tests.

I add also the information that, after a recent automatic update of my Ubuntu 10.10, I am facing problems with the wifi connection and that such problems seem to disappear if I disconnect the AC adapter.

Have a good day :)

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

Other bug subscribers

Remote bug watches

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