如何使用命令/脚本设置光标位置?
我有一个脚本可以重置一些东西,最后我需要它将光标设置为某个坐标,可以是自定义集,也可以是屏幕中心(重启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:]:
然后决定应该使用给定的参数还是计算出的参数。