Repository navigation
Releases: oriraz1607/contextscroll
Release list
ContextScroll v0.6.1
ContextScroll v0.6.1
Fixes an invisible autoscroll cursor in GNOME when ContextScroll is installed
from an RPM. The normal pointer could disappear during scrolling because the
replacement cursor SVGs were installed in an icons/ subdirectory while the
extension loaded them from its root directory.
Both the release and COPR RPM specs now install autoscroll-cursor.svg and
autoscroll-direction.svg directly in
/usr/share/gnome-shell/extensions/contextscroll-pointer@contextscroll/, matching
the existing tarball installer and extension code.
Regression checks cover both cursor paths, the other extension runtime files,
installer layout/content parity, and the absence of the obsolete icons/
directory for x86_64 and aarch64. CI and release validation run these checks.
The fixed package was tested with Adwaita in an isolated GNOME Shell 50.5
headless compositor: neutral and directional cursors, cursor movement,
direction awareness disabled, and restoration of the normal pointer all
passed. Bluefin/rpm-ostree installation and physical middle-click scrolling
were not tested end to end.
Downloads include RPMs and portable bundles for x86_64 and aarch64, checksums,
an SPDX SBOM, and build-provenance attestations.
ContextScroll v0.6.0
Full Changelog: v0.5.0...v0.6.0
v0.5.0
ContextScroll v0.4.1
Fixes the autoscroll replacement cursor in fullscreen applications, including Firefox on secondary monitors.
Changes:
- Keep GNOME Shell compositing active only while the autoscroll cursor is visible, preventing fullscreen direct scanout from covering the indicator.
- Raise the replacement cursor above fullscreen application windows when autoscroll starts.
- Constrain the visual cursor to the monitor where autoscroll began, including uneven multi-monitor layouts with inaccessible desktop gaps.
Upgrade note: log out and back in once after upgrading so GNOME Shell loads the updated extension module.
ContextScroll v0.4.0
ContextScroll v0.4.0 adds user-configurable behavior and tighter context recognition.
Highlights:
- Ordered per-user context rules for application and AT-SPI role, name, state, and action matching.
- Persistent pause/resume in GNOME Quick Settings and Extension Manager preferences.
- Fixed-size up/down autoscroll cursor with no speed encoding.
- Protocol v2 pause control with immediate pass-through and safe active-scroll cancellation.
- More precise generic browser link detection: plain comment/page text scrolls while the actual hyperlink keeps native middle-click.
- Desktop and GNOME Shell surfaces preserve native middle-click.
- Chromium, first-click refresh, stopping-click, axis, and stale-context reliability fixes accumulated since v0.3.2.
- Expanded Rust and Python regression coverage plus strict schema and extension validation.
Install:
curl -fsSL https://raw.githubusercontent.com/oriraz1607/contextscroll/v0.4.0/scripts/bootstrap.sh | bashSign out and back in after installation so GNOME Shell loads the updated extension code.
ContextScroll v0.3.2
ContextScroll 0.3.2 fixes the autoscroll cursor becoming permanently restricted to one axis.
Fixes:
- Separates visible cursor displacement from filtered wheel displacement.
- Keeps the visible cursor responsive on both X and Y throughout autoscroll.
- Recalculates dominant-axis suppression continuously instead of locking for the entire session.
- Preserves protection against small cross-axis wheel jitter.
- Immediately enables diagonal scrolling or a new dominant axis when movement becomes intentional.
- Adds regression coverage for direction changes and unrestricted visual cursor movement.
No GNOME Shell extension update or logout is required for this release.
ContextScroll v0.3.1
ContextScroll 0.3.1 fixes intermittent native middle-click failures after autoscrolling in Chromium-based browsers.
Fixes:
- Advances a context generation whenever autoscroll stops.
- Rejects cached semantic decisions created before GNOME restores the hidden pointer to its visible final position.
- Synchronizes pointer restoration and fresh classification before allowing the next decision to be reused.
- Safely falls back to native middle-click if a post-restoration classification is not available within the existing bounded refresh window.
- Adds regression coverage for stale context and for stopping-button release state leaking into a later middle-click.
No GNOME Shell extension update or logout is required for this release.
ContextScroll v0.3.0
ContextScroll 0.3.0 improves browser reliability and autoscroll feedback.
Highlights:
- Refreshes stale pointer context through a bounded 60 ms acknowledgement handshake, avoiding intermittent no-op middle clicks without adding a fixed delay.
- Keeps generated wheel events anchored to the page so upward scrolling cannot reach Chromium's tab strip.
- Moves the visible GNOME autoscroll cursor with physical mouse displacement and restores the real pointer to its final position when scrolling stops.
- Locks clearly vertical or horizontal gestures to their dominant axis while preserving deliberate diagonal scrolling.
- Expands protocol validation, reliability tests, and security documentation.
GNOME Wayland users upgrading from an older extension version may need to sign out and back in once so GNOME Shell loads the updated pointer bridge.
ContextScroll v0.2.1
ContextScroll v0.2.1 improves browser context recognition and helper reliability.
- Preserves native middle-click for semantic links, linked cards, tabs, controls, and editable fields while keeping generic Chromium click metadata from disabling autoscroll.
- Recognizes unfocused Brave and Firefox windows without requiring a preliminary click.
- Keeps AT-SPI traversal and Shell-facing D-Bus work on the GLib main thread, preventing the helper crashes that caused intermittent native fallback and missing cursor indicators.
- Expands native handling for accessible list items and table cells.
This release passed 69 automated Rust and Python tests, Rust formatting, Clippy with warnings denied, shell syntax validation, live Fedora installation, and hands-on Brave browser testing.
ContextScroll v0.2.0
ContextScroll now runs its input daemon as a dedicated unprivileged system account instead of root. A narrow udev rule grants access only to physical mouse-class event nodes and /dev/uinput; the account is not a member of the broad input group.
The installer migrates existing installations automatically. POSIX ACL tools (setfacl) are now a runtime requirement.
This release passed 59 automated tests, formatting, Clippy, systemd validation, udev validation, live Fedora installation, startup checks, and hands-on browser testing.