我使用 Gnome3 作为我的桌面界面,有两个显示器。我希望能够使用键盘将鼠标光标从一个显示器移动到另一个显示器,例如使用Ctrl + Alt + Right-key。如何设置?
答案1
下面的脚本可以使用两个参数运行:left
和right
。
在双显示器设置(左/右,任意配置)中,脚本会将鼠标移动到中心左显示器或右显示器,取决于参数。
剧本
#!/usr/bin/env python3
import subprocess
import sys
arg = sys.argv[1]
screeninfo = [
s for s in subprocess.check_output("xrandr").decode("utf-8").split()\
if s.count("+") == 2
]
if arg == "left":
match = [s for s in screeninfo if s.endswith("+0+0")][0]
elif arg == "right":
match = [s for s in screeninfo if not s.endswith("+0+0")][0]
data = [item.split("x") for item in match.split("+")]
numbers = [int(n) for n in [item for sublist in data for item in sublist]]
coord = [str(int(n)) for n in [(numbers[0]/2)+numbers[2], (numbers[1]/2)+numbers[3]]]
subprocess.Popen(["xdotool", "mousemove", coord[0], coord[1]])
如何使用
该脚本需要
xdotool
:sudo apt-get install xdotool
将脚本复制到一个空文件中,另存为
move_mouse.py
测试运行脚本。从终端运行以下命令:
python3 /path/to/move_mouse.py left
和
python3 /path/to/move_mouse.py right
如果一切正常,请将命令添加到两个可用的快捷键中:选择:系统设置 > “键盘” > “快捷键” > “自定义快捷键”。单击“+”并添加上述命令。
笔记
该脚本不是gnome
特定的;它应该可以在所有 Ubuntu 发行版上正常运行。
解释
我们可以通过以下命令将鼠标移动到特定位置(例如):
xdotool mousemove 300 500
为了计算两个屏幕中的目标位置(居中),我们需要了解连接的屏幕以任意布局定位,例如
在 的输出中
xrandr
,我们可以找到有关两个屏幕的信息、它们的分辨率以及它们在跨越布局中的位置,例如:1280x1024+1680+128
要获得每个屏幕的目标位置(中心),我们需要做的就是将第一个和第二个数字(1280x1024,分辨率)除以 2,然后将两个计算出的位置添加到每个屏幕的偏移量(在本例中为 +1680+128)。这正是脚本所做的。
随后,找到的数字被用作运行
xdotool mousemove
-command 的参数。
答案2
在 Ubuntu 18.04 中没有自定义快捷方式,因此@JacobVlijm 的方法,我计算了我的中心并在我的 shell 中写了别名:
sudo echo -e "\
alias lt='xdotool mousemove 640 360' \n\ # lt means left
alias rt='xdotool mousemove 1920 512'\ # rt means right
" >> .bashrc
答案3
出于这个原因,我今天创建了一个非常简短的脚本:https://github.com/techgaun/easy-mouse-mover 它允许您向左或向右移动(并移动到屏幕中心),并且设计为圆形,这意味着如果您在最左边或最右边,并且如果您分别尝试将鼠标向左或向右移动,它将分别移动到最右边或最左边,我个人认为这很有用,可以作为键盘快捷键自由移动。我希望它对其他人有用。此外,它支持任意数量的显示器。
答案4
在 Ubuntu Gnome 中,我使用这个非常简单的 bash 脚本将鼠标指针立即移动到双屏设置上的另一个显示器。
https://github.com/vijay-prema/swap-screen
您只需在脚本中输入显示分辨率,并将脚本绑定到热键即可。如果有人知道如何让它自动检测分辨率,请告诉我!