我想编程我的鼠标,这样,每当光标被移向右或左,操作系统解释为一个右键按或左键按。哪些鼠标事件对应于游标的右和左,以及在xbindkey中将使用什么语法(因为这似乎是用于xbindkey的正确工具)。
使用xev -event mouse,我看到光标的移动会给出MotionNotify事件--会不会以某种方式导致该事件的接收导致右/左键按下?
发布于 2022-07-22 23:49:32
这个使用平普特包的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)https://unix.stackexchange.com/questions/710960
复制相似问题