Files
surface-dial-renewed/doc/installation-service.md

2.1 KiB

Installation and Systemd Service

Files

Install helpers:

renewed_driver/install.sh
renewed_driver/uninstall.sh

Systemd user service:

renewed_driver/install/surface-dial-renewed.service

udev rules:

renewed_driver/install/70-surface-dial-renewed-uinput.rules
renewed_driver/install/70-surface-dial-renewed-input.rules
renewed_driver/install/70-surface-dial-renewed-hidraw.rules

Install

From the repository root:

./renewed_driver/install.sh

This performs:

  1. cargo install --path renewed_driver
  2. udev rule installation under /etc/udev/rules.d
  3. udev reload and trigger
  4. systemd user service installation
  5. systemctl --user enable --now surface-dial-renewed.service

The service runs as the desktop user, not root. That is required for access to the user session D-Bus used by KDE OSD.

Service

The service runs:

%h/.cargo/bin/surface-dial-renewed --mode multitouch

It restarts on failure with a 2 second delay.

To tune multitouch timing in the service, edit:

~/.config/systemd/user/surface-dial-renewed.service

Example:

ExecStart=%h/.cargo/bin/surface-dial-renewed --mode multitouch --mt-idle-ms 100 --mt-idle-max-ms 1500 --mt-settle-ms 80

Then reload and restart:

systemctl --user daemon-reload
systemctl --user restart surface-dial-renewed.service

Useful commands:

systemctl --user status surface-dial-renewed.service
systemctl --user restart surface-dial-renewed.service
journalctl --user -u surface-dial-renewed.service -f

Permissions

The udev rules grant user-session access to:

  • /dev/uinput
  • Surface Dial input event nodes
  • Surface Dial HID raw node for haptics

If input permissions still fail, add the user to the group that owns /dev/input/event*, then log out and back in:

sudo gpasswd -a "$(whoami)" "$(stat -c '%G' /dev/input/event0)"

Uninstall

From the repository root:

./renewed_driver/uninstall.sh

This disables the user service, removes service/rule files, reloads udev, and uninstalls the Cargo binary.