From ac1d00b00446783668928181339ffeae4b17d104 Mon Sep 17 00:00:00 2001 From: L0g0ff Date: Thu, 20 Aug 2026 18:12:56 +0200 Subject: [PATCH] etc: systemd: Remove redundant StopWhenUnneeded from iptsd@.service StopWhenUnneeded=yes was added in bcb12c690 alongside BindsTo=%I to make sure iptsd stops when its backing hidraw device is removed. BindsTo= already covers that case on its own (see systemd.unit(5): a unit bound to a device is stopped when the device is unplugged). StopWhenUnneeded= instead ties the unit's lifetime to whether any other active unit still "needs" it via a Wants=/Requires= dependency. Since iptsd@.service is only ever started through udev's SYSTEMD_WANTS on the hidraw device unit - a one-time job trigger, not a persistent Wants= - no unit ever durably "needs" it, so systemd stops iptsd a few seconds after every start, even while the device is still present. This breaks touch/pen on cold boot until the device is recreated (e.g. by suspend/resume, which re-triggers the udev rule). Removing StopWhenUnneeded= keeps the intended "stop when device is removed" behavior via BindsTo=, and fixes the premature-stop regression. --- etc/systemd/iptsd@.service.in | 1 - 1 file changed, 1 deletion(-) diff --git a/etc/systemd/iptsd@.service.in b/etc/systemd/iptsd@.service.in index 433e92e7..6b54ac6c 100644 --- a/etc/systemd/iptsd@.service.in +++ b/etc/systemd/iptsd@.service.in @@ -1,7 +1,6 @@ [Unit] Description=Intel Precise Touch & Stylus Daemon Documentation=https://github.com/linux-surface/iptsd -StopWhenUnneeded=yes BindsTo=%i.device [Service]