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.github.io/install | sh
Installs the scrollshift binary to ~/.local/bin by default, verifying the release SHA-256 checksum and never using sudo. Set SCROLLSHIFT_INSTALL_DIR to choose another directory. ScrollShift is a Linux input daemon, so the binary then needs the root-level service setup below. Or build from source:
make test
sudo make install
sudo scrollshift devices
sudo scrollshift configure /dev/input/eventX
sudo scrollshift doctor
sudo scrollshift service enable
configure records the physical pointer's vendor/product identity and normalized kernel name. The daemon rediscovers the current event node automatically.
If no matching pointer is present, the daemon waits. If the stored identity matches more than one candidate, ScrollShift refuses to grab a device instead of guessing. Its own virtual uinput device is excluded from capture candidates to prevent reinjection loops.
Current format
device_vendor = 0x3151
device_product = 0x402d
device_name = Example Wireless Mouse
profile = balanced
reconnect_ms = 1000
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
scrollshift service status
scrollshift service logs
sudo scrollshift service restart
sudo scrollshift service stop
sudo scrollshift service start
sudo scrollshift service disable