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
Current permission model. Early releases use a root system service for evdev capture and uinput creation rather than broadly loosening access to input devices. A less-privileged model can be evaluated later without weakening the initial safety boundary.

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.