Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Destination-based ("glide") smooth scrolling mode, like Chromium

Open
#1,470 1 comment 0 reactions 0 assignees View on GitHub

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

enhancement
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from linearmouse/linearmouse

All issues in linearmouse/linearmouse

Similar issues

More Swift issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.