我有一个脚本可以重置一些东西,在它的最后我需要将光标设置为某些坐标,要么设置为自定义设置,要么设置为屏幕的中心(gnome-shell
例如,重新启动时默认重置为该坐标)。
如何实现?解决方案必须适用于所有显示尺寸,并能够自动获取数据并进行所有相关数学运算等。
我正在运行带有 GNOME 3.20 的 Ubuntu GNOME 16.04。
答案1
将鼠标移动到定义(绝对)位置
..只需通过命令即可完成(例如):
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
然后将中的两个数字除以二,用于:
xdotool mousemove <x> <y>
以下行:
if sys.argv[1:]:
然后决定是否应该使用给定的参数或计算的参数。