如何在 Gnome3 中使用按键在显示器之间移动鼠标光标?

如何在 Gnome3 中使用按键在显示器之间移动鼠标光标?

我使用 Gnome3 作为我的桌面界面,有两个显示器。我希望能够使用键盘将鼠标光标从一个显示器移动到另一个显示器,例如使用Ctrl + Alt + Right-key。如何设置?

答案1

下面的脚本可以使用两个参数运行:leftright

在双显示器设置(左/右,任意配置)中,脚本会将鼠标移动到中心左显示器或右显示器,取决于参数。

在此处输入图片描述

剧本

#!/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]])

如何使用

  1. 该脚本需要xdotool

    sudo apt-get install xdotool
    
  2. 将脚本复制到一个空文件中,另存为move_mouse.py

  3. 测试运行脚本。从终端运行以下命令:

    python3 /path/to/move_mouse.py left
    

    python3 /path/to/move_mouse.py right
    
  4. 如果一切正常,请将命令添加到两个可用的快捷键中:选择:系统设置 > “键盘” > “快捷键” > “自定义快捷键”。单击“+”并添加上述命令。

笔记

该脚本不是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

您只需在脚本中输入显示分辨率,并将脚本绑定到热键即可。如果有人知道如何让它自动检测分辨率,请告诉我!

相关内容