Destination-based ("glide") smooth scrolling mode, like Chromium
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 62/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- git, macos, swift
- Domain
- desktop-dev
Research direction
Start by reading GlideScrollingEngine and GlideScrollingTransformer, then inspect the scrolling.glide configuration and JSON schema changes. Apply and inspect the attached patch with git am, and run the relevant unit tests plus the macOS app in Xcode. The feature is done when Glide is available in the Scrolling mode picker, overrides Smoothed only for enabled directions, preserves line-mode behavior, and includes matching configuration documentation and schema support.
Written by the indexing model from the issue text.
Description
OS
27.0.1
LinearMouse
v0.13.0-beta.4
Is your feature request related to a problem?
This has bothered me for months. I use a notched-wheel mouse, and LinearMouse's Smoothed mode always feels floaty in comparison to something like chrome or (brave browser for me) smooth scrolling implementation. And this is because of the way linear mouse adds momentum to make scrolling smooth Quick clicks stack up, so I overshoot where I wanted to land. I spent a long time tuning response, speed, acceleration and inertia, but nothing fixes it, because the problem is the momentum model itself. Inertia 0 removes the coasting, but each click then becomes a short, jittery burst.
Describe the solution you'd like
What I wanted is how scrolling feels in Brave/Chrome: each click slides the page a set distance and stops right there. The snappiness of line based scrolling with the smoothness that brave/chrome implement.
Describe alternatives you've considered
Better Mouse app, it is proprietary closed source app and paid, although it solves this with its scrolling, it runs into a different issue where because its pixel based system that differs a lot from line based it doesn't work well in games and doesn't have a line based system I could set for games the way I could be able to do it on linear mouse, so scrolling only works good on standard applications.
Additional context
Full disclosure: I'm not a developer, and this is completely vibe-coded. I built it with Claude (Anthropic's AI). I described how Chromium-style scrolling should feel, Claude studied how Chromium does it and wrote the code, and I tested it on my Mac. It builds cleanly in Xcode, and honestly it works really well. It's exactly the feel I was missing.
How it's put together, in case it's useful:
- A separate engine (GlideScrollingEngine + GlideScrollingTransformer) that doesn't touch the existing Smoothed code.
- A scrolling.glide config key that merges field by field across schemes, so one app can override just the line height.
- A "Glide" option in the Scrolling mode picker, documentation, the JSON schema update, and unit tests.
- When Glide is on for a direction it takes precedence over Smoothed; line mode is unchanged, so my game profiles still get real one-click-one-step events.
It's on a fork based on current main (v0.13.0-beta.4). I'd really love to see this become an official option in LinearMouse. I'm happy to open a PR, but I fully understand if you'd rather review the approach first, rewrite it your own way, or just use it as a reference. Whatever works best for you. Thanks for building LinearMouse; the per-app schemes are what made this possible.
The attached patch applies on top of current main (843d9a0) with git am.
glide-scrolling-patch.zip
- Dominant language
- Swift
- Stars
- 6.9k
- Forks
- 175
- Avg merge
- 3h 35m
- Merged PRs (30d)
- 27
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from linearmouse/linearmouse
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
linearmouse/linearmouse#1464 · 1 comment ·
Maintainers usually reply within 1 day
-
Dark iconOpenenhancement
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
linearmouse/linearmouse#1022 · 2 comments · 2 reactions ·
Maintainers usually reply within 1 day
-
Focus windows on hover never moves focus away from VS CodePossibly taken @EduRomoGO claimed this 1 day ago. Open
Difficulty 4/5 3-5 days Newbie friendliness 20/100
linearmouse/linearmouse#1471 · 1 comment ·
Maintainers usually reply within 1 day
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 52/100
linearmouse/linearmouse#1469 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 3/5 1-2 days Newbie friendliness 55/100
linearmouse/linearmouse#1466 ·
Maintainers usually reply within 1 day
All issues in linearmouse/linearmouse
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
whysosuresh/capsjump#86 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Maintainers usually reply within 1 day
-
bug mobile
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
lognorman20/monaco#6282 ·
-
bug ready for review
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Maintainers usually reply within 2 days