有没有办法在每次鼠标移动时运行命令?

Jac*_*ynn 4 mouse resolution automation events xdotool

我想每次移动鼠标时都运行一个脚本。

这是解决方法的第一步,以便我可以使用100% 的显示器边缘在它们之间切换

这可能吗?

Jac*_*ijm 6

字面上的问题

检测鼠标移动,可以使用多种工具完成。两个例子:

  1. xdotool在脚本中使用:
    [您需要xdotool安装]:

    sudo apt-get install xdotool
    
    Run Code Online (Sandbox Code Playgroud)
    • 比较(在循环中)两个鼠标位置,有一个时间间隔:
      从以下命令获取鼠标位置xdotool

      $ xdotool getmouselocation
      x:1449 y:137 screen:0 window:79691788
      
      Run Code Online (Sandbox Code Playgroud)
    • 如果我们在(python)脚本中解析这个输出,我们可以让它在鼠标移动时运行命令(如果 position1 不等于 position2):

      sudo apt-get install xdotool
      
      Run Code Online (Sandbox Code Playgroud)
  2. 使用 (python's)tkinter 也可以使用python's own完成完全相同的过程tkinter

    [你需要tkinter3安装]:

    sudo apt-get install python3-tk
    
    Run Code Online (Sandbox Code Playgroud)

与您的目标相关的示例

当鼠标侵入下面的某个位置(线)时,可以做什么来控制要运行的命令的示例。

#!/usr/bin/env python3
import subprocess
import time

def get_mousepos():
    curr = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8")
    return [int(it.split(":")[1]) for it in curr.split()[:2]]

current1 = get_mousepos()
while True:
    time.sleep(0.5)
    current2 = get_mousepos()
    if not current1 == current2:
        # run a command:
        print("action")
    current1 = current2
Run Code Online (Sandbox Code Playgroud)

在这个例子中,当你从左到右移动鼠标时,鼠标会跳跃,反之亦然:

在此处输入图片说明

在这种情况下,鼠标跳跃一个固定的 jump。但是,加入一些数学运算,并将跳转线移动到屏幕右侧(+ 第二个屏幕左上角的单独“安排”),您可以按比例进行跳转,以创建您所在的设置针对您的第一个问题:将鼠标从一个屏幕移动到另一个屏幕时,使(在双屏设置中)两个屏幕看起来具有相同的垂直分辨率。

那时您无法将鼠标从一个屏幕移动到另一个屏幕的“死角”将不存在。(我的两个屏幕上都有工作情况)

如果窗口分布在两个屏幕上,它仍然会产生奇怪的效果,但是可以做到。

在此处输入图片说明