This python script using the pynput package achieves the desired goal.
import time from pynput import mouse, keyboard from pynput.keyboard import Key, Controller keyboard = Controller() prevX = -1 def on_move(x, y): global prevX if prevX == -1: prevX = x elif prevX < x: keyboard.press(Key.right) keyboard.release(Key.right) elif prevX > x: keyboard.press(Key.left) keyboard.release(Key.left) if prevX != x: prevX = x listener = mouse.Listener( on_move=on_move) listener.daemon = True listener.start() while True: time.sleep(1) Adjusted to trigger a key press only after a determined number of mouse events on a direction:
import time from pynput import mouse, keyboard from pynput.keyboard import Key, Controller keyboard = Controller() sensitivity = 20 # number of events to trigger key press prevX = -1 leftEvents = 0 rightEvents = 0 def on_move(x, y): global prevX global leftEvents global rightEvents if prevX == -1: prevX = x elif prevX < x: rightEvents += 1 leftEvents = 0 elif prevX > x: leftEvents += 1 rightEvents = 0 if rightEvents == sensitivity: keyboard.press(Key.right) keyboard.release(Key.right) rightEvents = 0 if leftEvents == sensitivity: keyboard.press(Key.left) keyboard.release(Key.left) leftEvents = 0 if prevX != x: prevX = x listener = mouse.Listener( on_move=on_move) listener.daemon = True listener.start() while True: time.sleep(1)