Surface Laptop Studio NixOS Hardware IPTSD service issues

My hardware is Surface Laptop Studio

Currently using NixOS with a flake config, on the unstable channel for pkgs.

Here’s my main flake file:

Here’s my configuration.nix:

My issue:
I’m trying to use Surface kernel/patches from NixOS-hardware repo, everything else seems to be working (single finger touch screen, trackpad, etc) apart from the iptsd part. It’s Intel Precise Touch Service Daemon which is supposed to be for multi-touch touchscreen as well as stylus.
I get an error for iptsd.service after rebuilding the system stating that DEVICE is required which I think something isn’t right about the systemd service? I can manually enable the service by using iptsd-find-hidraw/device and then iptsd “device”. But that’s very annoying having to do that every time my system restarts or something causes it to stop etc.
I’m not sure where and how to fix this, I have done a lot of research on github as well Googling everything I can think of. I’m relatively new to Linux and Nix so it may be an easy solution that I just don’t know.

Appreciate any sort of help and would love to learn more about Nix :smiley:

Please let me know what else I can provide to give a clearer view of my issue.


Edit: Here’s the error message when I run rebuild

building the system configuration...
stopping the following units: accounts-daemon.service, systemd-udevd-control.socket, systemd-udevd-kernel.socket, systemd-udevd.service
NOT restarting the following changed units: systemd-fsck@dev-disk-by\x2duuid-649D\x2d06FE.service
activating the configuration...
reviving group 'surface-control' with GID 989
setting up /etc...
reloading user units for james...
setting up tmpfiles
reloading the following units: dbus.service
restarting the following units: polkit.service
starting the following units: accounts-daemon.service, systemd-udevd-control.socket, systemd-udevd-kernel.socket
the following new units were started: fstrim.timer
warning: the following units failed: iptsd.service

× iptsd.service - IPTSD
     Loaded: loaded (/etc/systemd/system/iptsd.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Mon 2023-06-19 12:59:54 BST; 71ms ago
   Duration: 16ms
    Process: 8054 ExecStart=/nix/store/jwbbnwxj8kskyg1vm9r9jpbxjwidrmkb-unit-script-iptsd-start/bin/iptsd-start (code=exited, status=106)
   Main PID: 8054 (code=exited, status=106)
         IP: 0B in, 0B out
        CPU: 5ms

Jun 19 12:59:54 nixos systemd[1]: Started IPTSD.
Jun 19 12:59:54 nixos iptsd-start[8055]: DEVICE is required
Jun 19 12:59:54 nixos iptsd-start[8055]: Run with --help for more information.
Jun 19 12:59:54 nixos systemd[1]: iptsd.service: Main process exited, code=exited, status=106/n/a
Jun 19 12:59:54 nixos systemd[1]: iptsd.service: Failed with result 'exit-code'.
warning: error(s) occurred while switching to the new configuration