39 lines
906 B
Python
39 lines
906 B
Python
import socket
|
|
import time
|
|
from evdev import UInput, ecodes as e
|
|
|
|
# Create a virtual mouse device
|
|
ui = UInput(
|
|
{
|
|
e.EV_REL: [e.REL_X, e.REL_Y],
|
|
e.EV_KEY: [e.BTN_LEFT, e.BTN_RIGHT]
|
|
},
|
|
name='virtual-mouse'
|
|
)
|
|
|
|
HOST = '0.0.0.0'
|
|
PORT = 2025
|
|
|
|
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
sock.bind((HOST, PORT))
|
|
|
|
print(f"Listening on {HOST}:{PORT}")
|
|
|
|
try:
|
|
while True:
|
|
data, addr = sock.recvfrom(1024)
|
|
x_str, y_str = data.decode().split(',')
|
|
dx = int(float(x_str))
|
|
dy = int(float(y_str))
|
|
|
|
# Note: uinput typically handles relative motion (REL_X / REL_Y)
|
|
ui.write(e.EV_REL, e.REL_X, dx)
|
|
ui.write(e.EV_REL, e.REL_Y, dy)
|
|
ui.syn()
|
|
|
|
print(f"Moved mouse relative: dX={dx}, dY={dy}")
|
|
except KeyboardInterrupt:
|
|
print("\nUDP server shutting down.")
|
|
finally:
|
|
ui.close()
|
|
sock.close() |