Git Product home page Git Product logo

Comments (7)

rowlap avatar rowlap commented on August 21, 2024 1

This is similar to #251 in terms of code changes, I think, and might be convenient to consider together.

from xorgxrdp.

metalefty avatar metalefty commented on August 21, 2024

It's worth considering.

from xorgxrdp.

metalefty avatar metalefty commented on August 21, 2024

I'm working on this. I will submit an initial pull request in May.

from xorgxrdp.

metalefty avatar metalefty commented on August 21, 2024

I raised a draft PR #315. We probably need to discuss the specifications.

  1. Where to configure the scrolling direction?
    • xrdp
    • xorgxrdp
  2. Which type of scrolling to reverse?
    • touch
    • control touch and wheel separately
    • all

In my Win11 environment, scroll directions are

  1. Moving two-finger down on touchpad scrolls upward and vice versa
  2. Rotating mouse wheel down scrolls downwards and vice versa

and there's no user-facing interface to change the scrolling direction as @rowlap mentioned. I remember it was possible a few years ago though.

We probably don't want to reverse wheel scroll directions so I implemented reversing touch scroll first. If we control the scrolling direction on xrdp side, we need to care about VNC backend that doesn't distinguish between touch scroll and wheel scroll.

@rowlap @matt335672 What do you think?

from xorgxrdp.

metalefty avatar metalefty commented on August 21, 2024

Also, it would be nice if we could configure this kind of configuration via libinput.

from xorgxrdp.

rowlap avatar rowlap commented on August 21, 2024

Where to configure the scrolling direction?

If the virtualized mouse / touchpad were to advertise support for what libinput calls "Natural scrolling", I think we'd be fine. The request came via a user who was previously overriding with xmodmap, for mouse wheel direction.

from xorgxrdp.

matt335672 avatar matt335672 commented on August 21, 2024

I've had a quick look at this.

The TigerVNC (at least for 1.12.0) is similar to the xrdp one:-

$ xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ TigerVNC pointer                        	id=6	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ TigerVNC keyboard                       	id=7	[slave  keyboard (3)]
$ xinput list-props 'TigerVNC pointer'
Device 'TigerVNC pointer':
	Device Enabled (119):	1
	Coordinate Transformation Matrix (121):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	Device Accel Profile (240):	0
	Device Accel Constant Deceleration (241):	1.000000
	Device Accel Adaptive Deceleration (242):	1.000000
	Device Accel Velocity Scaling (243):	10.000000

Adding support for libinput won't automatically work with VNC, but if we can get this working it might(?) be possible to raise a PR on TigerVNC.

From what I can tell, we'd need to pull bits of the xf86-ibput-libinput driver into xrdpmouse.

The repo for that driver is here, but it looks like it's about to go away for 48 hours:-

https://gitlab.freedesktop.org/xorg/driver/xf86-input-libinput

Debian mirror is here:-

https://salsa.debian.org/xorg-team/driver/xserver-xorg-input-libinput

I'd be happy to look at it, but I'm a bit snowed under at the moment.

from xorgxrdp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.