After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 673055 - Mouse freezes right after typing
Mouse freezes right after typing
Status: RESOLVED FIXED
Product: gnome-settings-daemon
Classification: Core
Component: mouse
3.3.x
Other Linux
: Normal normal
: ---
Assigned To: gnome-settings-daemon-maint
gnome-settings-daemon-maint
: 692772 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2012-03-29 10:35 UTC by Naba Kumar
Modified: 2013-01-29 09:06 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Don't freeze mouse movement during disable-touchpad-while-typing timeout (1.45 KB, patch)
2012-03-29 11:08 UTC, Naba Kumar
none Details | Review

Description Naba Kumar 2012-03-29 10:35:40 UTC
1) Open gedit
2) Type something
3) Immediately, try to move the mouse
4) Mouse freezes for some time

g-s-d version 3.3.92

This is essentially bug reported in Ubuntu some time ago: https://bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/801763 (Typing causes cursor to stick)

However, the fix was introduced by reducing the syndaemon timeout to 0.5 sec with a distro patch, but that introduced bug https://bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/962958 (Touchpad in macbook pro gets clicked all the time randomly when typing)

This is better fixed by introducing "-k" option to syndaemon command at:
http://git.gnome.org/browse/gnome-settings-daemon/tree/plugins/mouse/gsd-mouse-manager.c#n528, which does not prevent mouse movement during the timeout, but prevents spurious clicks.

It is much likely to operate the mouse right after having typed something, than moving and clicking something, within the timeout window of 2 secs. Hence, having former not working often is a lot more annoying than latter not working occasionally.

So, please introduce -k option for syndaemon. It is also the recommended option at https://wiki.archlinux.org/index.php/Touchpad_Synaptics.

Thanks.
Comment 1 Bastien Nocera 2012-03-29 10:41:34 UTC
Looks like something to do in GNOME 3.5. Can you prepare a patch?

Note that this might get thrown away when we switch to using idle counters to do this work ourselves.
Comment 2 Naba Kumar 2012-03-29 10:46:39 UTC
Also, while at it, "-i 2.0" option can be removed too. That's the default value already in syndaemon, hence superfluous to specify again.
Comment 3 Naba Kumar 2012-03-29 11:08:42 UTC
Created attachment 210857 [details] [review]
Don't freeze mouse movement during disable-touchpad-while-typing timeout

(In reply to comment #0)
> 
> This is better fixed by introducing "-k" option to syndaemon command ...
> 
Uhm, I meant -t option, not -k. Sorry.

Here is the patch attached - takes care of both things I mentioned. If you accept, I can also push directly to your git.
Comment 4 Philip Durbin 2012-05-11 23:29:48 UTC
(In reply to comment #3)
> Uhm, I meant -t option

Yes, -t is what we desperately need to avoid having the mouse freeze.  Since making the changes below I have a completely new attitude about GNOME 3.  It doesn't frustrate me at all.

Phil

-------- Original Message --------
Subject: Re: "Add touchpad tab to the mouse capplet" commit
Date: Mon, 07 May 2012 11:31:29 -0400
From: Matthias Clasen <mclasen@redhat.com>
To: Philip Durbin <philipdurbin@gmail.com>

On Sat, 2012-05-05 at 01:09 -0400, Philip Durbin wrote:
> Hi Matthias,
> 
> I wonder if you'd be willing to take a look at this question and my 
> answer to it:
> 
> http://unix.stackexchange.com/questions/37962/can-i-prevent-disable-touchpad-while-typing-from-affecting-mouse-movements
> 
> I'm emailing you specifically because I found your name on this "Add 
> touchpad tab to the mouse capplet" commit: 
> http://git.gnome.org/browse/gnome-settings-daemon/commit/plugins/mouse/gsd-mouse-manager.c?id=4eb9bd09219afbb56f114a2d10bc585e24db803e
> 
> Am I right in thinking that the options to syndaemon are hard coded?
> I have a work around, but I thought I'd see what you think about the 
> situation.

Please take it to bugzilla.gnome.org,

thanks, Matthias

----

http://unix.stackexchange.com/questions/37962/can-i-prevent-disable-touchpad-while-typing-from-affecting-mouse-movements

On my ThinkPad X220T running GNOME 3 it's pretty easy to be typing along and accidentally bump the touchpad, causing some window other than the one you're typing into to be raised.

Ostensibly, the solution to this problem is to click your name in the upper right, then click "System Settings", then "Mouse and Touchpad", and then "Disable touchpad while typing" under as shown the screenshot at http://www.thinkwiki.org/wiki/Synaptics_TouchPad_driver_for_X .

This will cause `syndaemon` ( http://linuxcommand.org/man_pages/syndaemon1.html ) to start up with the following options:

    syndaemon -i 2.0 -K -R

Here's what the options mean:

    -i <idle-time>
           How many seconds  to  wait  after  the  last  key  press  before
           enabling the touchpad.  (default is 2.0s).

    -k     Ignore modifier keys when monitoring keyboard activity.

    -K     Like -k but also ignore Modifier+Key combos.

    -R     Use  the  XRecord  extension  for  detecting  keyboard  activity
           instead of polling the keyboard state.

Having syndaemon running with those options eliminates the original problem, but it absolutely kills my productivity because the `-t` option is **not** enabled:

    -t     Only disable tapping and  scrolling,  not  mouse  movements,  in
           response to keyboard activity.

Without `-t`, as soon as I stop typing and try to move the pointer, I can't.  I have to wait 2 full seconds before the pointer will move.

Now, back at that "Mouse and Touchpad" interface, I do not see any way to configure which options are given to `syndaemon` and from what I can tell, the options are hard coded:

http://git.gnome.org/browse/gnome-settings-daemon/tree/plugins/mouse/gsd-mouse-manager.c?id=5ee48ce8aa66f6c4fdc4aa2c07bc03bdb83bcb65#n540

The solution is twofold.  I can't abide `syndaemon` with its default options, so I leave "Disable touchpad while typing" unchecked.  Then, to get `syndaemon` to start with the options I want, I run `gnome-session-properties` to open the "Startup Applications Preferences" dialog.  From there, I click Add, fill in a name (I called mine "0pdurbin-disable-touchpad-while-typing" so it would appear at the top), and a command, which for me is the following:

    syndaemon -i 1.0 -K -R -t

Again, the major change is the addition of `-t` so `syndaemon` doesn't paralyze my pointer, but while I was in there I reduced the idle time to one second.

I hope this helps someone because this was driving me crazy.

To avoid using a GUI tool like `gnome-session-properties` it looks like you could set up a file like this, which was created in my case:

    [pdurbin@tabby ~]$ cat ~/.config/autostart/syndaemon.desktop 

    [Desktop Entry]
    Type=Application
    Exec=syndaemon -i 1.0 -K -R -t
    Hidden=false
    X-GNOME-Autostart-enabled=true
    Name[en_US]=0pdurbin-disable-touchpad-while-typing
    Name=0pdurbin-disable-touchpad-while-typing
    Comment[en_US]=
    Comment=
    [pdurbin@tabby ~]$ 

Incidentally, this seems to be a pretty complete list of applications that are autostarted, the ones listed in `gnome-session-properties`: `find /etc/xdg/autostart /usr/share/autostart /usr/share/gdm/autostart/ /usr/share/gnome/autostart`
Comment 5 Matthias Clasen 2012-05-12 00:08:18 UTC
After trying this quickly, I agree that it feels much nicer when adding -t
to the syndaemon call. 

Bastien, should we consider this for 3.4.2 ?
Comment 6 Bastien Nocera 2012-06-18 10:52:09 UTC
commit c1b2b478ec71b907e4af736d62c1a81ad400f902
Author: Bastien Nocera <hadess@hadess.net>
Date:   Mon Jun 18 11:51:09 2012 +0100

    mouse: Only inhibits mouse clicks and scrolls with syndaemon
    
    Not mouse movements.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=673055

commit 8fe3ad021968f117f37634a74e5a63575cb818d7
Author: Bastien Nocera <hadess@hadess.net>
Date:   Mon Jun 18 11:50:29 2012 +0100

    mouse: Simplify syndaemon command-line building
Comment 7 Bastien Nocera 2013-01-29 09:06:05 UTC
*** Bug 692772 has been marked as a duplicate of this bug. ***