neutrinolabs / xorgxrdp

Xorg drivers for xrdp
Other
428 stars 108 forks source link

[v0.9] too fast scroll speed with macOS RDP client (again) #265

Closed metalefty closed 3 months ago

metalefty commented 10 months ago

(2023-12-19) Read this summary first for current stauts: https://github.com/neutrinolabs/xorgxrdp/issues/265#issuecomment-1687398399

Sudddenly 3 people @dropwhile @zobi @furrnace has reported XRDP_XORG_TOUCHPAD_SCROLL_HACK=yes is not wokring with macOS RDP in a month.

I certainly confirmed the fix mitigates too fast scroll speed before making a release. It was definitely a working mitigation a year ago. So I guess something has changed in the recent update of macOS RDP client and it disables the mitigation.

Let's collect information here about the regression if it happens around July or August 2023 or later. Guys, could you report the version of macOS RDP client?

dropwhile commented 10 months ago

To be honest, the scroll hack never worked for me (macos RDP as client, with a touchpad as mouse device) with any of the released versions. I just assumed I had done something wrong or misconfigured something (even while I assumed I was following the instructions), as I use alpine which isn't exactly a mainstream choice for a desktop distribution. I just kind of dealt with the weird scrolling issue for a long time.

I have now, however, managed to patch the released versions with some patches from the currently unreleased master branches, and have finally gotten nice scrolling as a result!

First I applied this diff/patch to xrdp-0.9.22.1 (https://github.com/neutrinolabs/xrdp/commit/c4d671497933ff5df718430ec35d7074fe458510) then rebuilt/installed.

Then I applied this diff/patch to xorgxrdp-0.9.19 (https://github.com/neutrinolabs/xorgxrdp/pull/234/files) then rebuilt and installed.

Note: Since I use alpine, just applying these patches and rebuilding using the existing alpine community repo build tooling/scripts was much easier for me than packaging the master branches directly, as I am not a master of alpine packaging by any means.

While it was stated that nothing of significance had changed from the tagged releases since the aforementioned released versions, for whatever reason, I found this to not be the case for me.. as the combination of the two patches above have fixed my scrolling issues.


EDIT to add RDP client and server version info:

Client:

Server (xrdp):

metalefty commented 10 months ago

To be honest, the scroll hack never worked for me (macos RDP as client, with a touchpad as mouse device) with any of the released versions.

When did you try the hack first?

dropwhile commented 10 months ago

To be honest, the scroll hack never worked for me (macos RDP as client, with a touchpad as mouse device) with any of the released versions.

When did you try the hack first?

Probably a week or two after the released versions hit the alpine repos, which seems to have been around March? ref: https://git.alpinelinux.org/aports/commit/?id=c36318e8641db92d8cf317904674219765c4094d

(a bit of a delay on that package being updated, but better late than never, so I can't complain too much!)

EDIT: And I found the remote desktop for macos release notes, which seems to imply the remote desktop client version was likely 10.8.1 at around that time.
ref: https://learn.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/mac-whatsnew#updates-for-version-1081

metalefty commented 10 months ago

While it was stated that nothing of significance had changed from the tagged releases since the aforementioned released versions, for whatever reason, I found this to not be the case for me.. as the combination of the two patches above have fixed my scrolling issues.

It is the difference of the point of view. There's some parallel branches, stable v0.9 and unstable devel but you are mixing both.

Regarding v0.9 branch, there's no changes since the last release. That is true. It is still be maintainened only accept bugfixes with keeping compatibility. https://github.com/neutrinolabs/xorgxrdp/commits/v0.9

Regarding devel branch, never released. Changes from the last release are undefined because there's no releases, the last release doesn't exist. So "changes from the last release" is nothing, too.

metalefty commented 10 months ago

Anyway, I'll test if the hack still works. At least it worked when I made xorgxrdp v0.9.19 release. I'm not a Mac user now. Let me some time to prepare (I only have Mac Book Pro 2016).

Here I summarize current status. In any cases, devel version has more effective fixes for the scrolling issue. v0.9 has only mitigation.

v0.9

Hack to address too fast scrolling has been added since v0.9.19. It is enabled by XRDP_XORG_TOUCHPAD_SCROLL_HACK=yes.

The hack is only a mitigation for compatibility reasons.

devel (never relesed, to be 1.0)

More effective fix has been applied because we don't care compatibility with older versions.

dropwhile commented 10 months ago

@metalefty that makes sense. Thanks for the clarifications. 👍

enricotagliavini commented 10 months ago

I can confirm the issue still exists, even when using XRDP_XORG_TOUCHPAD_SCROLL_HACK=yes on both Linux and MacOS clients.

On Linux I'm using Remmina 1.4.31 and freerdp 2.10.0.

MobCode100 commented 8 months ago

It's still happening on fedora 38-xfce with latest xorgxrdp and xrdp, the scroll is too fast for me but on windows machine, the scroll is fine. I'm using remmina 1.4.32.

dblaber commented 6 months ago

I am one of the original reporters quite some time ago, (and long since dumped the mac for other reasons) and recently started using xrdp/freebsd server with arch linux + remmina clients, (no mac in the picture, thinkpad touchpad is where client is running), and am seeing the issue with latest version ( wtih XRDP_XORG_TOUCHPAD_SCROLL_HACK=yes set, doesn't seem to make a difference) version: 0.9.23.1.1 (freebsd packages version) EDIT: Also wanted to mention, if there is any version (or can build from develop), I can always test if there is a potential fix.

saveli commented 6 months ago

scroll hack does not work for me either on macos. xrdp 0.9.17 microsoft rdp 10.9.4 (2161)

metalefty commented 6 months ago

@saveli 0.9.17 doesn't have the scroll hack yet. It is a natural outcome the scroll hack didn't work for you.

The version that the scroll hack introduced is mentioned here: https://github.com/neutrinolabs/xorgxrdp/issues/265#issuecomment-1687398399

metalefty commented 6 months ago

@dblaber If you are interested in a potential fix, see these pull requests.

https://github.com/neutrinolabs/xrdp/pull/2364 https://github.com/neutrinolabs/xorgxrdp/pull/234

saveli commented 6 months ago

@metalefty thanks for pointing that out. I tested the hack again with devel branch, so version is now xrdp 0.9.23.1, but still no bueno. scroll speed still way too fast.

metalefty commented 6 months ago

That's strange. The version of devel branch is not 0.9.23.1. Either branch you're trying or the actual version is not correct.

Anyway, v0.9 has only mitigation for compatibility reasons. Mitigation is mitigation, I know the mitigation is not enough for some environments. The current status is summarized here: https://github.com/neutrinolabs/xorgxrdp/issues/265#issuecomment-1687398399

That's all we can guide you. Please wait for the next news, hold on.

wucke13 commented 6 months ago

I just tested with XRDP_XORG_TOUCHPAD_SCROLL_HACK=yes on xrdp-0.9.23.1, and scrolling is still almost a page per millimeter on the touchpad. Client is Remmina.

Jack-Vaughn commented 5 months ago

Just wanted to chime in that setting "XRDP_XORG_TOUCHPAD_SCROLL_HACK=yes" fixed my scrolling problem with trackpads perfectly with the following client/server setup.

xrdp OS - Debian 12 xrdp Version - 0.9.21.1-1

Client OS - MacOS 14.2.1 RDP Client - Microsoft Remote Desktop 10.9.5

metalefty commented 5 months ago

Thank you for letting me know that the hack works! For some reasons, the hack works for some people but not for some people :(

jogomu commented 5 months ago

The environment variable does not fix the trackpad scrolling speed for me.

xrdp 0.9.21.1
ubuntu 23.10

MacOS 14.3
Microsoft Remote Desktop 10.9.5

/etc/xrdp/sesman.ini :
[SessionVariables]
XRDP_XORG_TOUCHPAD_SCROLL_HACK=yes
# /proc/pid/environ analysis for env var, procs matching xrdp:
# /usr/sbin/xrdp-sesman ... no
# /usr/sbin/xrdp ... no
# /usr/lib/xorg/Xorg ... yes
# /usr/sbin/xrdp-chansrv ... yes
essele commented 4 months ago

Just to add a little bit of colour ... I had the issue with the trackpad, I built and installed the "hack" in the current release and it made no difference at all. I confirmed the variable was being recognised by adjusting the logging levels and checking the log.

The actual code that implements the fix looks like a simple "restrict the events to one every 10ms", so for testing purposes I changed the 10ms to 100ms and I get much better scrolling, so it looks like there are some different timing considerations for some people.

My suggestion would be to make the environment variable a "time in ms" rather than a yes/no/true/false type variable, then it should be able to cater for whatever is causing different experiences for different people.

My environment: Standard Ubuntu 22.04 target (with 0.9.19 added over the top) Source: New M3 MacBook Pro with Microsoft Remote Desktop 10.9.5

Obviously it sounds like this is properly fixed in the newer version, but thought it was worth mentioning.

jogomu commented 4 months ago

apple magic mouse also triggers the problem

metalefty commented 4 months ago

Will be fixed in next v0.9.25 release.

metalefty commented 3 months ago

Hi everyone, v0.9.25 is out!

metalefty commented 3 months ago

v0.9.25 has a bug. I will make another release with a bugfix.