커서가 오른쪽이나 왼쪽으로 움직일 때마다 운영 체제가 이를 오른쪽이나 왼쪽 버튼을 누르는 것으로 해석하도록 마우스를 프로그래밍하고 싶습니다. 왼쪽 및 오른쪽 커서에 해당하는 마우스 이벤트와 xbindkeys에 사용되는 구문은 무엇입니까(올바른 도구인 것 같으므로).
xev -event mouse
MotionNotify 이벤트를 사용하면 커서 이동이 제공되는 것을 볼 수 있습니다. 어떤 방식으로든 이 이벤트를 수신하여 오른쪽/왼쪽 버튼을 누를 수 있습니까?
답변1
이 Python 스크립트는플랫 입력패키지가 의도한 목표를 달성했습니다.
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)
특정 방향에서 특정 횟수의 마우스 이벤트 후에만 키 누르기를 트리거하도록 조정합니다.
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)