-
Notifications
You must be signed in to change notification settings - Fork 8
/
arctica-greeter-enable-tap-to-click
executable file
·40 lines (35 loc) · 1.69 KB
/
arctica-greeter-enable-tap-to-click
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/python3
import sys
import os
import syslog
import subprocess
import re
if __name__ == '__main__':
try:
output = subprocess.check_output(["xinput", "list"]).decode("UTF-8")
for line in output.splitlines():
line = line.strip().lower()
if "pointer" in line:
m = re.search(r'id=(\d+)', line)
if m:
if len(m.groups()) > 0:
device_id = m.groups()[0]
syslog.syslog(f"Found xinput pointer: id={device_id}")
props = subprocess.check_output(["xinput", "list-props", device_id]).decode("UTF-8")
for prop in props.splitlines():
prop = prop.strip()
if "Tapping Enabled Default" in prop:
continue
if "Tapping Enabled" in prop:
syslog.syslog(" --> This device has a tap-to-click property")
m = re.search(r'Tapping Enabled \((\d+)\):', prop)
if m:
if len(m.groups()) > 0:
prop_id = m.groups()[0]
syslog.syslog(f" --> Tapping Enabled property ID: {prop_id}")
syslog.syslog(f" --> Calling 'xinput set-prop {device_id} {prop_id} 1'")
subprocess.check_output(["xinput", "set-prop", device_id, prop_id, "1"])
except Exception as e:
# best effort, syslog it and bail out
syslog.syslog("ERROR: %s" % e)
sys.exit(0)