[GH-ISSUE #329] [dev build] very fast mouse scroll speed on client #174

Closed
opened 2026-05-05 22:12:34 -06:00 by gitea-mirror · 14 comments
Owner

Originally created by @markmandel on GitHub (Oct 15, 2025).
Original GitHub issue: https://github.com/feschber/lan-mouse/issues/329

I just noticed this on the updated dev build today.

When I scroll with my mouse wheel, it tends to scroll way further than it used to on the client (i.e. the non primary computer).

I'm 96.7% sure that it wasn't this aggressive before - I would have noticed - I use this every day 👍🏻

Is this just a me thing?

Running:
Debian Testing
Hyprland

Originally created by @markmandel on GitHub (Oct 15, 2025). Original GitHub issue: https://github.com/feschber/lan-mouse/issues/329 I just noticed this on the updated dev build today. When I scroll with my mouse wheel, it tends to scroll way further than it used to on the client (i.e. the non primary computer). I'm 96.7% sure that it wasn't this aggressive before - I would have noticed - I use this every day 👍🏻 Is this just a me thing? Running: Debian Testing Hyprland
Author
Owner

@markmandel commented on GitHub (Oct 17, 2025):

Was just looking through history - I'm assuming https://github.com/feschber/lan-mouse/pull/325 is now why I'm finding scrolling SUPER fast in Chrome.

This is one click of my scrollwheel back and forth:

Image

On my host machine, it only moves slightly down the page smoothly.

Update:

I check wev on host vs client machine - and a scroll is the same value across both:

wl_pointer] axis: time: -212050813; axis: 0 (vertical), value: 15.000000
[        15:      wl_pointer] axis_source: 0 (wheel)
<!-- gh-comment-id:3416564644 --> @markmandel commented on GitHub (Oct 17, 2025): Was just looking through history - I'm assuming https://github.com/feschber/lan-mouse/pull/325 is now why I'm finding scrolling SUPER fast in Chrome. This is one click of my scrollwheel back and forth: ![Image](https://github.com/user-attachments/assets/f6069bc1-67a7-4b80-8807-86b84535ff41) On my host machine, it only moves slightly down the page smoothly. Update: I check `wev` on host vs client machine - and a scroll is the same value across both: ``` wl_pointer] axis: time: -212050813; axis: 0 (vertical), value: 15.000000 [ 15: wl_pointer] axis_source: 0 (wheel) ```
Author
Owner

@feschber commented on GitHub (Oct 17, 2025):

Yeah this is a regression in 39b79d88a5. axis_descrete takes tiks, not value120

<!-- gh-comment-id:3417418178 --> @feschber commented on GitHub (Oct 17, 2025): Yeah this is a regression in 39b79d88a5b05fd357d6397e795ed518d459309a. `axis_descrete` takes tiks, not value120
Author
Owner

@feschber commented on GitHub (Oct 17, 2025):

@selckin could you check, if setting axis_source is sufficient for your case? It should technically fix the scrolling regardless.

<!-- gh-comment-id:3417421213 --> @feschber commented on GitHub (Oct 17, 2025): @selckin could you check, if setting `axis_source` is sufficient for your case? It should technically fix the scrolling regardless.
Author
Owner

@selckin commented on GitHub (Oct 18, 2025):

Without it and only axis_source it still only scrolls a tiny amount for me

lan-mouse
[        15:      wl_pointer] axis_source: 0 (wheel)
[        15:      wl_pointer] axis_value120: axis: 0 (vertical), value120: -1
[        15:      wl_pointer] axis_relative_direction: axis: 0 (vertical), direction: 0
[        15:      wl_pointer] axis: time: -142902005; axis: 0 (vertical), value: -20.000000
[        15:      wl_pointer] frame
real-mouse
[        15:      wl_pointer] axis_source: 0 (wheel)
[        15:      wl_pointer] axis_value120: axis: 0 (vertical), value120: 120
[        15:      wl_pointer] axis_relative_direction: axis: 0 (vertical), direction: 0
[        15:      wl_pointer] axis: time: 1454827716; axis: 0 (vertical), value: 15.000000

Do you have an axis_value120 event ?
Maybe its capturing a wrong input value then?

<!-- gh-comment-id:3418429689 --> @selckin commented on GitHub (Oct 18, 2025): Without it and only axis_source it still only scrolls a tiny amount for me ``` lan-mouse [ 15: wl_pointer] axis_source: 0 (wheel) [ 15: wl_pointer] axis_value120: axis: 0 (vertical), value120: -1 [ 15: wl_pointer] axis_relative_direction: axis: 0 (vertical), direction: 0 [ 15: wl_pointer] axis: time: -142902005; axis: 0 (vertical), value: -20.000000 [ 15: wl_pointer] frame real-mouse [ 15: wl_pointer] axis_source: 0 (wheel) [ 15: wl_pointer] axis_value120: axis: 0 (vertical), value120: 120 [ 15: wl_pointer] axis_relative_direction: axis: 0 (vertical), direction: 0 [ 15: wl_pointer] axis: time: 1454827716; axis: 0 (vertical), value: 15.000000 ``` Do you have an axis_value120 event ? Maybe its capturing a wrong input value then?
Author
Owner

@selckin commented on GitHub (Oct 18, 2025):

I install hyprland on my the client & server, and did some testing:
Server side niri or hyprland have same behavior
Client being hyprland then chrome scrolls normally and the events also have 120 value:
EDIT: ^ with my change/patch reverted

lan-mouse
[        15:      wl_pointer] axis: time: -138830402; axis: 0 (vertical), value: 20.000000
[        15:      wl_pointer] axis_source: 0 (wheel)
[        15:      wl_pointer] axis_relative_direction: axis: 0 (vertical), direction: 0
[        15:      wl_pointer] axis_value120: axis: 0 (vertical), value120: 120
real-mouse
[        15:      wl_pointer] axis: time: 279190; axis: 0 (vertical), value: 15.000000
[        15:      wl_pointer] axis_source: 0 (wheel)
[        15:      wl_pointer] axis_relative_direction: axis: 0 (vertical), direction: 0
[        15:      wl_pointer] axis_value120: axis: 0 (vertical), value120: 120

So difference in behavior between niri/smithay and hyprland, events also in different order not sure if that matters (yet)

<!-- gh-comment-id:3418475297 --> @selckin commented on GitHub (Oct 18, 2025): I install hyprland on my the client & server, and did some testing: Server side niri or hyprland have same behavior Client being hyprland then chrome scrolls normally and the events also have 120 value: EDIT: ^ with my change/patch reverted ``` lan-mouse [ 15: wl_pointer] axis: time: -138830402; axis: 0 (vertical), value: 20.000000 [ 15: wl_pointer] axis_source: 0 (wheel) [ 15: wl_pointer] axis_relative_direction: axis: 0 (vertical), direction: 0 [ 15: wl_pointer] axis_value120: axis: 0 (vertical), value120: 120 real-mouse [ 15: wl_pointer] axis: time: 279190; axis: 0 (vertical), value: 15.000000 [ 15: wl_pointer] axis_source: 0 (wheel) [ 15: wl_pointer] axis_relative_direction: axis: 0 (vertical), direction: 0 [ 15: wl_pointer] axis_value120: axis: 0 (vertical), value120: 120 ``` So difference in behavior between niri/smithay and hyprland, events also in different order not sure if that matters (yet)
Author
Owner

@selckin commented on GitHub (Oct 18, 2025):

With or without my change, hyprland+chrome scrolls the same amount in my tests

I'll try and investigating it in more in details when I have time and look at what smithay and hyprland do; if you want to revert it till then that makes sense.

<!-- gh-comment-id:3418598489 --> @selckin commented on GitHub (Oct 18, 2025): With or without my change, hyprland+chrome scrolls the same amount in my tests I'll try and investigating it in more in details when I have time and look at what smithay and hyprland do; if you want to revert it till then that makes sense.
Author
Owner

@markmandel commented on GitHub (Oct 18, 2025):

Appreciate y'all looking into this!

Bit busy at the moment, but happy to run tests or provide whatever information I can on my end in the next couple of days if needed or wanted.

<!-- gh-comment-id:3418675371 --> @markmandel commented on GitHub (Oct 18, 2025): Appreciate y'all looking into this! Bit busy at the moment, but happy to run tests or provide whatever information I can on my end in the next couple of days if needed or wanted.
Author
Owner

@feschber commented on GitHub (Oct 19, 2025):

@selckin you are using niri on both sides, right? I think I will do a partial revert for now and test this myself.

<!-- gh-comment-id:3419684390 --> @feschber commented on GitHub (Oct 19, 2025): @selckin you are using niri on both sides, right? I think I will do a partial revert for now and test this myself.
Author
Owner

@selckin commented on GitHub (Oct 19, 2025):

@selckin you are using niri on both sides, right? I think I will do a partial revert for now and test this myself.

yes

<!-- gh-comment-id:3419695296 --> @selckin commented on GitHub (Oct 19, 2025): > [@selckin](https://github.com/selckin) you are using niri on both sides, right? I think I will do a partial revert for now and test this myself. yes
Author
Owner

@feschber commented on GitHub (Oct 27, 2025):

Alright, I'm pretty sure this is a niri bug: e6f3c538da/src/protocols/virtual_pointer.rs (L522)

they are directly using the discrete (=steps) value here as the v120. This should be multiplied by 120. I'm going to open a PR.

<!-- gh-comment-id:3451136826 --> @feschber commented on GitHub (Oct 27, 2025): Alright, I'm pretty sure this is a niri bug: https://github.com/YaLTeR/niri/blob/e6f3c538da0c646bda43fcde7ef7dc3b771e0c8b/src/protocols/virtual_pointer.rs#L522 they are directly using the discrete (=steps) value here as the v120. This should be multiplied by 120. I'm going to open a PR.
Author
Owner

@feschber commented on GitHub (Oct 27, 2025):

https://github.com/YaLTeR/niri/pull/2684

<!-- gh-comment-id:3451308351 --> @feschber commented on GitHub (Oct 27, 2025): https://github.com/YaLTeR/niri/pull/2684
Author
Owner

@selckin commented on GitHub (Oct 27, 2025):

Thank you very much for looking into this, can confirm that everything works for me with the niri patch applied

<!-- gh-comment-id:3452852419 --> @selckin commented on GitHub (Oct 27, 2025): Thank you very much for looking into this, can confirm that everything works for me with the niri patch applied
Author
Owner

@markmandel commented on GitHub (Oct 27, 2025):

New dev build is working much better for me! Thank you!

<!-- gh-comment-id:3453511703 --> @markmandel commented on GitHub (Oct 27, 2025): New dev build is working much better for me! Thank you!
Author
Owner

@feschber commented on GitHub (Nov 17, 2025):

Closing this, as it is now fixed upstream in niri :)

<!-- gh-comment-id:3541647501 --> @feschber commented on GitHub (Nov 17, 2025): Closing this, as it is now fixed upstream in niri :)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/lan-mouse#174
No description provided.