On the 25.10.2016 13:08, Peter Hutterer wrote:
On 25/10/2016 18:48 , Alexis BRENON @Wayland wrote:
Hi Peter,

Thanks for the feedback.

I really understand the rationales behind this choice nevertheless, it
comes with some drawbacks...

You say that the kinetic scroll must be implemented by toolkits and
applications, this implies to choose at which level? Desktop
Environment, Window Manager, End-User Application.

in the wayland protocol, the axis sources are implemented in a similar way, enabling the end-user application (or rather, the toolkit) to do kinetic scrolling. In the end it's the only one that can do it, nothing else has the semantic context required.

  * In the case of DE, what about users not using one?

ok, this will be unpopular with the internets, but the times of "I don't want to have a DE" are over. yes, you can still do it. you can run scripts in xinit to set up things, but the vast majority of users will need to/want to have a DE running that takes care of things dynamically. Hardware has moved on since the 80s, so has the functionality we've come to expect. It's not enough anymore to throw a few pieces of metal on the ground and say "here's your car". you can still do it, but you're now talking about a tiny subset of users that want things that way.

so the case of no DE is niche in X, and effectively non-existent in wayland (because you *need* a compositor).

  * In the case of End-User Application, the user will have to define
    his friction factor in each one, each using a different
    implementation leading to inconsistent behavior... Moreover, it will
    be a feature not directly related to the app, and I fear that some
    (if not most) will not implement it at all...

then complain to the app. just because we could force it onto apps in libinput doesn't mean we should. especially given all the other drawbacks.

  * Finally, my window manager is not ready to change to Wayland
    (http://www.mail-archive.com/[email protected]/msg05058.html),
and so is far from implementing features lacking from Wayland drivers.

again, a rather unpopular opinion but: change window managers. or stick with synaptics, or maintain a patchset on top of libinput/xf86-input-libinput (as you pointed out below). I understand why awesome can't switch (manpower is the main issue, I guess) but the same applies for us having to maintain features we think are a bad design decision.

sorry, I don't have any happier solutions for you there. In case of emergency, I've heard there are kitten videos on youtube though ;)

Well, that said, I'm a real newbie about Wayland, libinput and Weston
(that I just discovered yesterday). So I think that this question was
already debated. If this is the case I'm really interested to see the
thread (I didn't find it in the archive).

it's been coming up repeatedly, but I'm not sure there's a single thread that I can point you to, sorry.

Cheers,
  Peter


Similar points were discussed in relation with libinput in the following threads for example:
[1.] Ignore devices that have joystick buttons; started 25.Nov.2014
[2.] Using Soft Keys with Weston & Libinput; started 04.Feb.2016.

The support for such kinetic UI functions and the support of other hardware such as gamepads and joysticks will come, definitely. But here on my side, we are not at the point of implementing something at this time.

Actually, my recommendation so far is to look at e.g. SDL, as discussed very briefly in [2.] and follow Peter's advices here and there. This might lead to the investment of some time at first at your side, but in the long term it is the best way to go.



Best regards
Christian Stroetmann



Finally, I will probably implement the kinetic scrolling for myself. If
someone else is interested, let me know.

Kind,
Alexis


Le mar. 25 oct. 2016 02:31, Peter Hutterer <[email protected]
<mailto:[email protected]>> a écrit :

On Mon, Oct 24, 2016 at 06:42:31PM +0000, Alexis BRENON @Wayland wrote:
> Hello everyone,
>
> I would like to implement kinetic scroll in the libinput driver
    for Xorg.
>
> I know that it's probably not the intended use of libinput ; as
    explained
> in the documentation, it's the client that have to manage that.
>
> However, as an Xorg user not happy with the synaptics driver, I
    would like
> to add a similar feature (fixing small disagreements encountered with
> synaptics) to libinput, allowing Xorg users to easily move to libinput
> without losing this feature.
>
> My first idea is to implement the kinetic scroll using a thread
    that sends
> axis events as long as there is no button event, key event or
    motion event
> higher than a threshold.
>
> It makes some time since the last time I developed in C, and maybe
    it's not
> the better way to do it. I would be happy to hear your advices.
>
> One thing I'm thinking of is then to add some options in the Xorg
> configuration file to enable/disable this feature, choose the events
> stopping the kinetic scroll and change some thresholds. This will
    allow to
> easily disable this feature in the future in case the clients
    manage the
> kinetic scroll on their own.
>
> What do you think of this? Is there someone already working on it?
    Is my
> proposition a good way to implement it?

    simple answer - "no". sorry :)

    there are two reasons we didn't implement kinetic scrolling in
    libinput. one
    is the series of bugs we have in synaptics with stopping scrolling
    at the
    right time (leading to inadvertent zooms, etc.). that's easier in
    libinput
    because we know about all devices but the fundamental problem
    remains - a
driver cannot know when kinetic scrolling is appropriate. e.g. sending
    scroll events when the document is already at the bottom? What's the
threshold going to be? A single pixel movement may land you in another
    window that you don't want to send scroll events to. A two-pixel
    movement
    may be considered acceptable to not stop scroll events.
A shift+scroll may be acceptable in one application but not in another.

Pushing this to the toolkits and applications is the only sane long-term solution. Anything else gives us a short-term solution that in two-three
    years time we'll just waste time having to working around.

    Cheers,
       Peter



_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to