thomas 5f1254d11a
Tests / test_core_function (push) Failing after 12s
import upstream maccel baseline
2026-03-25 09:32:22 +00:00
2026-03-25 09:32:22 +00:00
2026-03-25 09:32:22 +00:00
2026-03-25 09:32:22 +00:00
2026-03-25 09:32:22 +00:00
2026-03-25 09:32:22 +00:00
2026-03-25 09:32:22 +00:00
2026-03-25 09:32:22 +00:00
2026-03-25 09:32:22 +00:00
2026-03-24 16:51:23 +00:00
2026-03-25 09:32:22 +00:00
2026-03-24 16:51:23 +00:00
2026-03-24 16:51:23 +00:00
2026-03-25 09:32:22 +00:00
2026-03-25 09:32:22 +00:00
2026-03-25 09:32:22 +00:00
2026-03-25 09:32:22 +00:00
2026-03-25 09:32:22 +00:00
2026-03-25 09:32:22 +00:00
2026-03-25 09:32:22 +00:00

gotta-scroll-fast

Host-side scroll acceleration toolkit for Linux/Wayland.

This project is a fork/reimplementation inspired by maccel, but it is a separate tool focused on scroll acceleration.

credit and licensing

components

  • gsf - parameter CLI + TUI
  • gsfd - evdev -> uinput scroll acceleration daemon
    • applies acceleration curves to wheel/hwheel (including hi-res wheel events)
    • suppresses low-res wheel duplicates when hi-res events are present in the same frame

development

nix develop
cargo build

quick start (functional)

  1. List devices:
cargo run -p gsf-daemon -- --list-devices
  1. Pick your trackball device and run dry-run first:
cargo run -p gsf-daemon -- --device /dev/input/eventX --dry-run
  1. Tune parameters (separate terminal):
cargo run -p gsf-cli -- set mode natural
cargo run -p gsf-cli -- set param sens-mult 1.0
cargo run -p gsf-cli -- set param decay-rate 0.1
cargo run -p gsf-cli -- set param limit 1.5

or launch TUI:

cargo run -p gsf-cli -- tui
  1. Run live daemon:
cargo run -p gsf-daemon -- --device /dev/input/eventX

Tip: auto-pick by name substring:

cargo run -p gsf-daemon -- --match-name ploopy

config + state paths

Default config path:

  • ~/.config/gsf/config.json
  • override with GSF_CONFIG_PATH

Default speed stats path:

  • $XDG_RUNTIME_DIR/gsf-speed.txt (if available)
  • fallback ~/.local/state/gsf/speed.txt
  • override with GSF_STATS_PATH

runtime requirements

  • Linux with evdev/uinput
  • /dev/uinput available
  • permissions to read source event device and write uinput

For NixOS notes, see DEV_SETUP.md.

systemd user service

A starting unit file exists at:

  • packaging/systemd/user/gsfd.service

Copy to ~/.config/systemd/user/gsfd.service, adjust device selection args, then:

systemctl --user daemon-reload
systemctl --user enable --now gsfd
S
Description
No description provided
Readme GPL-2.0 1.4 MiB
Languages
Rust 49.1%
C 32.7%
Nix 7.6%
Shell 4.6%
Astro 3.7%
Other 2.3%