symless / synergy

Synergy lets you share one mouse and keyboard between multiple computers on Windows, macOS and Linux.
https://symless.com/synergy
GNU General Public License v2.0
10.29k stars 3.64k forks source link

Choppy trackpad scrolling on macOS 10.12 Sierra #5604

Closed tmepple closed 6 days ago

tmepple commented 7 years ago

With both client and server running the GM of Sierra and 1.8.2-stable-36cd52 the two finger trackpad scroll is not smooth anymore. I have to scroll on my trackpad at least 1 inch before any scrolling happens in the client window then when it does it jumps so significantly that it can't be controlled and is basically unusable. There are no errors in the logs on either server or client. It doesn't matter what app is being scrolled on the client (Safari, Slack, Chrome, etc).

Cursor movement on the client machine (thus connectivity) is working great and is smooth, the only issue is scrolling.

It was working much better under 10.11 El Capitan... the client scrolling was not as smooth as when you are controlling the server (localhost) but it was good enough to allow precise control.

xhou-wavefin commented 7 years ago

@tmepple Thank you for the information.

Except from scroll, do you experience cursor lag on your client as well?

tmepple commented 7 years ago

Hi @XinyuHou,

Client scroll is the only issue. I am not experiencing any cursor lag on the client, it's operating as smoothly as the local cursor on the server.

allanjackson commented 7 years ago

I'm having the same issue. It seems to affect both trackpad and mouse wheel scrolling. The problem actually happens for me without Synergy even running, but then when going from a Sierra server to a Sierra client, I think the problem multiplies in severity.

It appears that in Sierra, only scrolling a very small amount results in absolutely no scrolling at all. If I slowly turn my mouse wheel one "click" at a time, the page will never ever scroll -- no matter how far I turn the wheel. My guess is they've (Apple) implemented a change that ignores very small scrolls, but then uses acceleration to ramp up the scroll speed.

The big issue with respect to Synergy is that it appears that this "ignore small scrolls" is happening on both the server and then again on the client. So as you increase your scroll speed, it will go from not scrolling at all to suddenly scrolling pages at a time. Some applications seem to be affected more than others.

I'm not sure how much of this can be handled on the Synergy side or if we'll just have to figure out some way of disabling the new Sierra scroll changes. For now I've just turned down my scroll speed in System Preferences, and I always scroll the wheel quickly (these two changes seem to cancel each other out somewhat and make it useable).

allanjackson commented 7 years ago

So I did find these lines in /System/Library/Extensions/IOHIDFamily.kext/Contents/Info.plist

            <key>HIDScrollCountAccelerationFactor</key>
            <integer>163840</integer>
            <key>HIDScrollCountIgnoreMomentumScrolls</key>
            <true/>
            <key>HIDScrollCountMax</key>
            <integer>2000</integer>
            <key>HIDScrollCountMaxTimeDeltaBetween</key>
            <integer>600</integer>
            <key>HIDScrollCountMaxTimeDeltaToSustain</key>
            <integer>250</integer>
            <key>HIDScrollCountMinDeltaToStart</key>
            <integer>30</integer>
            <key>HIDScrollCountMinDeltaToSustain</key>
            <integer>20</integer>
            <key>HIDScrollCountMouseCanReset</key>
            <true/>

I tried changing (after disabling SIP) the HIDScrollCountMinDeltaToStart number, but it didn't seem to do anything. I'm going to stop messing with stuff I don't understand now so I don't break my computer...

mactabish commented 7 years ago

Having trouble with cursor lag from macOS Sierra server and Windows 10 client. Mouse cursor feels like its "dragging" or lagging behind as I'm moving the mouse.

I only noticed the problem after installing macOS Sierra.

Running latest version released version of Synergy.

ryansburgoyne commented 7 years ago

I am also having trouble scrolling smoothly on a Windows client. macOS sierra server works great.

skymakai commented 7 years ago

A workaround I've found is to use the Accessibility Setting, to change the scrolling speed. It lowers the scrolling speed to a usable rate: System Preferences>Accessibility>Mouse & Trackpad>Trackpad Options>Scrolling Speed.

joneit commented 7 years ago

I tried Accessibility setting too. It did make it smoother but it is still way too sensitive and I could not get it back to what it was. Apparently it is hard to get this right. No other laptop I've ever used has managed to make trackpad scrolling really usable except Apple; the fineness of the Apple's trackpad scroll was truly outstanding. Sadly, it has no "devolved." Was there a reason for this?

skymakai commented 7 years ago

From what I've read, the issue is fixed in Sierra Beta 4.

xhou-wavefin commented 7 years ago

"WARNING: Wheel scroll delta (22) smaller than threshold (120)"

Can you see this warning in the logging window?

grigorovich commented 7 years ago

For resolve that issues Synergy just needs support capture native OSX touch/mouse events (like on magic mouse or magic trackpad) on server side and reproduce them on OSX clients side. Now only legacy events works like simple usb mouse (scroll line by line).

xhou-wavefin commented 7 years ago

Hi guys, Could you test our latest 10.12 build on your sierra to see if the problem persists? Thanks. http://symless.com/nightly?filter=synergy-v1.8.6-rc1-7ce6905

tmepple commented 7 years ago

Hi @XinyuHou, The behavior has changed a bit for the better with the latest dev build. Now when the scrolling starts, it doesn't accelerate uncontrollably and scrolls at a constant speed. That makes it much more usable.

That said, it still takes a lot of finger movement on the trackpad to get any scrolling at all to register on the client compared to native scrolling or the previous behavior on El Capitan. When scrolling starts on the client it's very jumpy. Each "scroll event" moves the window significantly and not smoothly. It's very hard to describe so I made a short video (attached) on the client. The first 4 seconds were controlled by Synergy from the server... the last 4 seconds is the smooth native scroll. I don't have El Capitan installed on any machines anymore so I can't show the more direct comparison. Hope this helps! 2016-11-01_17-37-39.mp4.zip

iosdevben commented 7 years ago

Single "click" scrolls on the mouse wheel are still ignored by Sierra 10.12.1.

xhou-wavefin commented 7 years ago

Hi guys,

Can you test this nightly Please? http://symless.com/nightly?filter=synergy-issue5604-choppy-scrolling-rc2-d68bc41

tmepple commented 7 years ago

Hi Jerry,
Not sure about how it's working for others but for me the nightly didn't solve the issue... still exact same choppy scrolling. It (or another unreleased unrelated commit maybe related to #5648 ?) also seemingly caused another problem which is sometimes the cursor flies across the screen when I've barely moved on the trackpad. Previous to the nightly the cursor had been working perfectly -- only scrolling was a problem for me. I've uninstalled and reinstalled the release build and the cursor is working great again.

xhou-wavefin commented 7 years ago

@tmepple Thank you for the feedback.

I have merged another scroll fix. Please test this nighlty. http://symless.com/nightly?filter=synergy-issue5604-choppy-scrolling-rc2-f03a03a

tmepple commented 7 years ago

Hi @XinyuHou, I've been using the new nightly all day and the cursor issue in d68bc41 is thankfully gone... that part works great. Unfortunately the scrolling behavior seems exactly the same as as in the latest release build. I wish I could be of more help but not sure what changed to regress so much from El Capitan. Thanks for working on this and looking into it for us!

xhou-wavefin commented 7 years ago

@tmepple

Unfortunately the scrolling behavior seems exactly the same as as in the latest release build.

Could you give us a bit more explanations. What is exactly the problem? Thanks.

tmepple commented 7 years ago

Hi @XinyuHou, It works a lot better than it did before v1.8.6-rc1, it's at least usable now on Sierra without the rapid acceleration, so we can go ahead and close the issue if you like. Scrolling is still not as smooth as it was on El Capitan for some reason (see video I posted in this thread on 1st of Nov) bit it's OK. Thanks for all of your help on this!

xhou-wavefin commented 7 years ago

@tmepple Thank you for the feedback.

We will do more testing before merging in.

Flos commented 7 years ago

I have the same Issue, I use a MacBook Pro as Server OSX (10.11) and a iMac macOS (10.12) as a Client. Trackpad scrolling is unusable on the client.
After the updated from 1.8.6 to Synergy 1.8.7-stable, it works now much better, however the scrolling is now much to fast, and with that still very imprecise.

deckar01 commented 7 years ago

Server: Macbook Air - MacOS Sierra 10.12 - Synergy 1.8.7-stable-9799e96 Client: Dell Optiplex 980 - OpenSUSE Tumbleweed - Synergy 1.8.7

I just upgraded my server from El Capitan (10.11) to Sierra (10.12) and am experiencing inconsistent scrolling behavior on the client. The client has never been smooth, but it was usable and consistent before. Now the scrolling is intermittent and upredictable. Note: I have always had to set --yscroll 56 to reduce the scrolling granularity.

JetBrain's IDE had a similar issue when Sierra was released. https://youtrack.jetbrains.com/issue/IDEA-158500

Sierra generates much more events than El Captain. These events contain values ~0.1 instead of expected ~1. https://youtrack.jetbrains.com/issue/IDEA-158500#comment=27-1619333

Possibly related to #4285.

deckar01 commented 7 years ago

I had been using Synergy 1.8.8 for a while and still had choppy scrolling. I updated to Mac OS 10.12.5 and the problem went away. I think I skipped a few minor patch updates, so I'm not actually sure if it was the .5 patch that fixed it or a previous one.

@tmepple Are you able to reproduce on the latest patch of Sierra?

tmepple commented 7 years ago

Hi @deckar01, I am running the latest Sierra 10.12.5 and still see the choppy scrolling using v1.8.8. It's a little better than it was when I created the issue using v1.8.2 but still makes synergy unusable for some client use cases.

I'm hoping this issue might be fixed by the PRs https://github.com/symless/synergy/pull/5673 and https://github.com/symless/synergy/pull/5671 but the compiled nightlies posted by @XinyuHou are no longer available for test. It looks like it's on the "Should" list for inclusion in v1.9 -- I'm really hoping it makes it into that release.

deckar01 commented 7 years ago

@tmepple How choppy? Like, sporadic/lossy or just discrete bursts? Have you tried customizing the --yscroll <delta> for your client(s)? The default is 120, but I was getting error messages about scroll events being ignored, because they were only 56 pixels. Setting my delta to 56 caused scrolling to start behaving predictably. It's still discrete bursts, but it isn't sporadic or lossy.

See https://superuser.com/a/634449 for steps to calculate the correct delta.

tmepple commented 7 years ago

@deckar01, Thanks for the link... very informative.

It's just discrete bursts for me (not sporadic or lossy)... and I did notice it jumps 120 pixels for each scroll event. I tried launching synergyc with --yscroll 56 to test if it makes the jumpy scrolls more smooth but it didn't work. Scrolls are still jumping 120 pixels each time. I did see some weird sporadic/lossy scrolling in past versions of Synergy and/or MacOS but I haven't seen that for a while so I assumed that was fixed in recent versions.

It was perfectly smooth under El Capitan and really hoping the upcoming releases solve this at least before High Sierra is released which may very well screw it up again.

imjaypatel12 commented 6 years ago

Not sure if this applies to your issue but I stumble upon this issue while searching for the exact same "scroll lag issue", turned out that I enabled the "Turn keyboard backlight off after X seconds of inactivity". I suspect, it (MacOS) turns off/sleeps trackpad too upon aforementioned timeout, and that makes it unable to register the two finger scroll during first few moments. Surprisingly it doesn't affect the single finger tap/move. Anyway, I just disabled that setting and its all working fine now.

github-actions[bot] commented 2 months ago

This issue is stale because it has been open 1 year with no activity. Remove the stale label or add a comment, otherwise this will be closed in 30 days.

nbolton commented 6 days ago

I'm closing this issue due to inactivity, please let me know if you want to reopen it.