Files
surface-dial-renewed/doc/installation-service.md
T
2026-06-26 15:35:13 +02:00

88 lines
1.7 KiB
Markdown

# Installation and Systemd Service
## Files
Install helpers:
```text
renewed_driver/install.sh
renewed_driver/uninstall.sh
```
Systemd user service:
```text
renewed_driver/install/surface-dial-renewed.service
```
udev rules:
```text
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:
```bash
./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:
```text
%h/.cargo/bin/surface-dial-renewed --mode multitouch
```
It restarts on failure with a 2 second delay.
Useful commands:
```bash
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:
```bash
sudo gpasswd -a "$(whoami)" "$(stat -c '%G' /dev/input/event0)"
```
## Uninstall
From the repository root:
```bash
./renewed_driver/uninstall.sh
```
This disables the user service, removes service/rule files, reloads udev, and
uninstalls the Cargo binary.