diff --git a/common/.local/libexec/daemons/remapd b/common/.local/libexec/daemons/remapd
index 6ea3542d..40cae1e5 100755
--- a/common/.local/libexec/daemons/remapd
+++ b/common/.local/libexec/daemons/remapd
@@ -1,5 +1,10 @@
 #!/bin/sh
+# shellcheck disable=SC2210
+
+DEBOUNCE=1
+
 while :; do
-    watch -gn1 eval 'xinput --list | grep keyboard' >/dev/null 2>&1
-    remaps -qd >/dev/null 2>&1
+    udevadm monitor -us input | timeout "$DEBOUNCE" cat
+    sleep .1
+    remaps -qd
 done