Releases: EsportToys/LibreScroll
v2.1.5
Removes vestigial cancel key being sent.
Prior to implementing the low level mouse hook solution for filtering middle mouse buttons, this was used as a hack so that you can actually use LibreScroll with Chromium-based browsers, which enters into drag-scroll mode immediately upon wheel-button down (as opposed to the correct way in Firefox where it only begins upon the first mouse motion) and ignores any scroll inputs.
This hack had the side effects of creating the following annoyances:
- middle-clicking on taskbar window thumbnails just cancels the preview before you even release the wheel button, so if you have LibreScroll running then you can't close windows using middle click.
- some terminal-based apps will start doing weird stuff upon receiving the cancel key, like messing up the text buffer or just exiting certain modals unintentionally
LibreScroll added the LLMouseHook filtering of middle click a long time ago so this hack is no longer needed, but I had forgotten to remove it and so those annoyances stayed, until now.
v2.1.4
v2.1.3
Changelog
- change: default y-sensitivity is now 18 instead of 9
- added: ability to input negative numbers for x- and y-sensitivity. (thanks @yarub123's suggestion)
Personal thoughts:
These days I've found that I actually prefer using low friction even on my ThinkPad TrackPoint, whereas I was previously using high friction counteracted by a proportionally high sensitivity to emulate the behavior of stock TrackPoint scrolling.
I've changed my preference to use a higher scroll sensitivity-to-friction ratio (previously 36/6, now 36/3). This is the configuration that I currently use on both my ThinkPad T14sG3 and Tex Shinobi:
[LibreScroll]
decay=3
sensY=36
sensX=36
stepX=1
stepY=1
flick=0
think=1It turns out that low friction actually kind of gives you an extra fine dimension of control via time: whereas typical displacement-based controls means that your minimum precision of input change is entirely limited by the increment granularity, with a momentum-based input it becomes quite natural to freely transition between velocity-driven and position-driven controls by modulating your speed and/or button hold-time.
By gently tapping the rim of my TrackPoint and let the inertia smooth out the motion, I am able to make far finer scroll inputs than I ever could with vanilla TrackPoint scrolling, while simultaneously being able to scroll long distances quickly and effortlessly thanks to the combination of high sensitivity and low velocity attenuation.
v2.1.2 (recompiled)
- bugfix: prevent unwanted double-middleclick on Windows Precision Touchpad
(recompiled to baseline x86_64, instead of native to my laptop)
v2.1.1
- use a dedicated thread for low-level hook
v2.1
- make the input thread use highest priority
- add low-level mouse hook to filter out stray middle clicks
v2.0 - Zig rewrite
LibreScroll is now rewritten in Zig!
v1.2
Added ThinkPad mode, which when enabled will snap scroll motion to either vertical or horizontal, emulating how TrackPoint works.
Recommended Settings for ThinkPad users (replacing TPmiddle)
With your TrackPoint's middle button set to "middle click mode", the following configurations are recommended to emulate TPmiddle's direct scrolling:
Friction: 30
Y-Sensitivity: 90
X-Sensitivity: 90
Minimum X-Step: 10
Minimum Y-Step: 10
Flick Mode: No
ThinkPad Mode: Yes
v1.1.1
- fixed LibreScroll interfering with middle-click-to-close-window on taskbar hover, by delaying sending cancel until the first scroll action is emitted
v1.1
Fixed issue of dialog closing/aborting when attempt to scroll over Open/Save/etc dialogs.
Explanation:
To work around Microsoft Edge failing to exit the autoscroll mode despite detecting scroll inputs, the script sends VK_CANCEL so that Edge would exit autoscroll.
However, this also gets detected by traditional win32 file dialogs as if you had clicked "Cancel", immediately closing the dialog box.
This time I made it so that it only sends the converted scancode while leaving out the virtual key, this way programs do not receive an actual "Cancel" character but does detect the corresponding keyboard press.
Known Issue
The Windows WiFi network list is extremely finicky in that if it detects even a tiny bit of horizontal scroll motion, prevoius vertical scrolls gets cancelled. You can work around this by setting X-sensitivity to zero, which disables horizontal scrolling.
