如何使用命令/脚本设置光标​​位置?

我有一个脚本可以重置一些东西,最后我需要它将光标设置为某个坐标,可以是自定义集,也可以是屏幕中心(重启gnome-shell时默认重置为例如gnome-shell )。

怎么能实现这一目标? 该解决方案必须适用于所有显示尺寸,并能够自动获取数据并完成所有数学等操作。

我正在使用GNOME 3.20运行Ubuntu GNOME 16.04。

将鼠标移动到定义的(绝对)位置

..只需通过命令完成(例如):

 xdotool mousemove 200 200 

然而,将鼠标移动到屏幕的中心是一个相对命令,我们需要读取屏幕的信息并进行一些计算。 这是在下面的两个小脚本中完成的。

直接版本(将光标移动到左侧屏幕的中心)

要将鼠标移动到(最左侧)屏幕的中心,请使用以下脚本:

 #!/usr/bin/env python3 import subprocess xr = [s for s in subprocess.check_output("xrandr").decode("utf-8").split() if "+0+" in s] scr = [int(n)/2 for n in xr[0].split("+")[0].split("x")] subprocess.Popen(["xdotool", "mousemove", str(scr[0]), str(scr[1])]) 
  • 安装xdotool

     sudo apt-get install xdotool 
  • 将脚本复制到空文件中,将其另存为center_screen.py

  • 运行:

     python3 /path/to/center_screen.py 

扩展版本(可选参数x,y)

如果任意坐标是可选的 ,请使用:

 #!/usr/bin/env python3 import subprocess import sys if sys.argv[1:]: scr = [sys.argv[1], sys.argv[2]] else: xr = [s for s in subprocess.check_output("xrandr").decode("utf-8").split() if "+0+" in s] scr = [str(int(n)/2) for n in xr[0].split("+")[0].split("x")] subprocess.Popen(["xdotool", "mousemove", scr[0], scr[1]]) 

使用参数运行 ,此版本将光标移动到屏幕的中心,当运行时不带参数,或移动到任意位置,例如:

 python3 /path/to/center_screen.py 200 200 

说明

在命令输出中: xrandr ,我们需要找到的所有字符串如下:

 1680x1050+0+0 

…包含最左边屏幕上的数据( +0+ )。 然后将1680x1050中的两个数字除以2,用于:

 xdotool mousemove   

这条线:

 if sys.argv[1:]: 

然后决定应该使用给定的参数还是计算出的参数。