Files
gotta-scroll-fast/README.md
T

2.1 KiB

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