summaryrefslogtreecommitdiff
path: root/ar/.local/bin/remapd
blob: 10c07b222bb42a5d4d31f0984107b2c108501890 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash

device_ids() { xinput list --id-only 2>/dev/null | sort; }

run_remaps_settled() {
  before=$1
  i=0
  while [ "$i" -lt 15 ]; do
    [ "$(device_ids)" != "$before" ] && break
    sleep 0.1
    i=$((i + 1))
  done
  sleep 0.3
  remaps
}

remaps
while :; do
  before=$(device_ids)
  grep -qP -m1 '[^un]bind.+\/[^:]+\(usb\)' <(udevadm monitor -u -t seat -s input -s usb)
  run_remaps_settled "$before"
done