Compare commits
3 Commits
7f1d95183e
...
5f14fd11d0
Author | SHA1 | Date | |
---|---|---|---|
|
5f14fd11d0 | ||
|
e342e0d4dd | ||
|
8fe8bc3a0e |
@ -12,6 +12,9 @@ if strings.HasPrefix(message_string, "{KEYDWN}") {
|
||||
} else if strings.HasPrefix(message_string, "{KEYUP}") {
|
||||
key = strings.TrimPrefix(string(message_string), "{KEYUP}")
|
||||
k.Write(0, key)
|
||||
} else if strings.HasPrefix(message_string, "{KEYHLD}") {
|
||||
key = strings.TrimPrefix(string(message_string), "{KEYHLD}")
|
||||
k.Write(2, key)
|
||||
} else{
|
||||
for _, key := range message_string {
|
||||
// write once will simulate keyboard press/release, for long press or release, lookup at Write
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
This tool captures keyboard input from /dev/input/eventX and pipes it to the fifo accordingly.
|
||||
|
||||
An escape sequence of QKEYBOARD (QWERTY) will exit the program, but this can be changed via a command line argument.
|
||||
An escape sequence of `qkeyboard` (QWERTY) will exit the program, but this can be changed via a command line argument.
|
||||
|
||||
|
||||
## Why
|
||||
@ -18,6 +18,7 @@ Generally a user would be in this mode when not typing extensively.
|
||||
--- /tools/rawcapture/rawcapture.py
|
||||
|
||||
#!/usr/bin/python3
|
||||
# This tool adapted from https://github.com/whizse/exclusive-keyboard-access by Sven Arvidsson
|
||||
import os
|
||||
import sys
|
||||
import evdev
|
||||
@ -65,18 +66,23 @@ print("Using device " + device.fn)
|
||||
|
||||
print("Grabbing device for exclusive access.")
|
||||
device.grab()
|
||||
print("Enter numbers, press enter (Ctrl-C to exit).")
|
||||
|
||||
write_queue = queue.Queue()
|
||||
def write_loop():
|
||||
backlog = []
|
||||
while True:
|
||||
try:
|
||||
while backlog:
|
||||
with open(fifo, "w") as f:
|
||||
f.write(backlog.pop(0))
|
||||
|
||||
data = write_queue.get()
|
||||
with open(fifo, "w") as f:
|
||||
f.write(data)
|
||||
except Exception as e:
|
||||
print("Error writing to fifo: " + str(e))
|
||||
traceback.print_exc()
|
||||
backlog
|
||||
|
||||
write_thread = threading.Thread(target=write_loop, daemon=True)
|
||||
write_thread.start()
|
||||
@ -230,11 +236,11 @@ try:
|
||||
for event in device.read_loop():
|
||||
|
||||
if event.type == evdev.ecodes.EV_KEY:
|
||||
print(event)
|
||||
if event:
|
||||
print(event)
|
||||
#e_code = event.code - 1
|
||||
e_code = event.code
|
||||
if e_code == 2:
|
||||
break
|
||||
|
||||
try:
|
||||
key_str = KEYMAP[e_code]
|
||||
except KeyError:
|
||||
@ -245,6 +251,8 @@ try:
|
||||
quit_if_necessry(log)
|
||||
elif event.value == 0:
|
||||
key_str = "{KEYUP}" + key_str
|
||||
elif event.value == 2:
|
||||
key_str = "{KEYHLD}" + key_str
|
||||
else:
|
||||
print("Unknown value: " + str(event.value))
|
||||
continue
|
||||
|
Loading…
Reference in New Issue
Block a user