Я пытаюсь написать программу, которая выполняет код при каждом нажатии определенных клавиш.В настоящее время у меня это работает, но, к сожалению, это решение очень медленно.Python не узнает о нажатии клавиши до тех пор, пока через несколько секунд после нажатия.
command = "./STB_KEYCAP.sh"
popen = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)
for stdout_line in iter(popen.stdout.readline, ""):
stdout_line = stdout_line.decode("utf-8")[0]
if stdout_line == "a":
channelUp()
elif stdout_line == "d":
channelDown()
STB_KEYCAP.py:
xinput test-xi2 --root 3| grep -A2 --line-buffered RawKeyRelease | while read -r line ;
do
#Trim line down and remove non digits
if [[ $line == *"detail"* ]];
then
key=$( echo $line | sed "s/[^0-9]*//g")
if [[ $key == "38" ]];
then
echo "a"
fi
if [[ $key == "40" ]];
then
echo "d"
fi
if [[ $key == "42" ]];
then
echo "g"
fi
sleep 0
fi
done
Опять же, это работает, но это занимает несколько секунддля того, чтобы принять меры.Любые советы о том, как переписать это, чтобы сделать это быстрее, было бы здорово!