Documentation
Configuration & service
ScrollShift now has a deliberately small persistent configuration and a systemd service for everyday dogfooding. Event-node numbers are never persisted because /dev/input/eventN is not stable across boots or reconnects.
Install
curl -fsSL https://scrollshift.dev/install.sh | sh
Downloads and SHA-256 verifies the current Linux release, then uses ScrollShift's own hardened service installer to place the canonical binary at /usr/local/bin/scrollshift, register the managed systemd service, create the default automatic-discovery config, and start it. It may prompt for sudo. To download a verified standalone binary without changing the system, use curl -fsSL https://scrollshift.dev/download.sh | sh. Or build from source:
make test
sudo make install
scrollshift service status
sudo scrollshift doctor
Normal installs require no device selection. ScrollShift uses udev input classification when available to discover conventional wheel mice automatically, excludes touchpads, touchscreens, joysticks, tablets and keyboard auxiliary nodes, and follows mice across unplug/replug and /dev/input/eventN renumbering. When classification metadata is missing it uses a deliberately conservative evdev capability check so a non-mouse relative device is never mistaken for a mouse. It can also attach more than one mouse.
For unusual hardware, sudo scrollshift devices shows classifications and wheel capabilities. sudo scrollshift configure /dev/input/eventX remains available as an explicit stable-identity override for troubleshooting; it does not persist the event-node number itself.
Current format
mode = auto
profile = balanced
reconnect_ms = 1000
A manual configure DEVICE override changes mode to device and stores stable vendor/product/name identity, never an event-node path.
The preferred balanced profile is intentionally frozen while longer-term dogfooding continues. Configuration stays small: expose user concepts, not every internal tuning constant.
Service controls
sudo scrollshift service install
sudo scrollshift service uninstall
sudo scrollshift service start
sudo scrollshift service stop
sudo scrollshift service restart
scrollshift service status
scrollshift service logs
scrollshift service logs --follow
sudo scrollshift service enable
sudo scrollshift service disable
Update and uninstall
curl -fsSL https://scrollshift.dev/update.sh | sh
curl -fsSL https://scrollshift.dev/uninstall.sh | sh
Ordinary uninstall keeps /etc/scrollshift. Run the uninstall script with --purge only when you explicitly want to remove the saved ScrollShift configuration too.