如何限制鼠标指针移动仅为水平或仅为垂直?

如何限制鼠标指针移动仅为水平或仅为垂直?

我希望能够以完美的直线移动鼠标指针。我正在寻找一种使用两个修饰键组合的方法,其中一个使鼠标指针只能水平移动,而垂直移动则以正常方式进行。这就像我仅沿着垂直标尺移动鼠标本身,鼠标方向与标尺完全平行。并且仅水平移动具有相同的功能,使用不同的修饰键或键序列。

我也对部分解决方案感兴趣,比如使用命令行程序来限制移动,或者使用键盘来改变移动模式。或者甚至是某种本地“配置黑客”。

此功能的一个极好使用示例是允许使用 YouTube 视频中的缩略图栏,而无需手动将鼠标保持在水平范围内。

答案1

解决方法:

首先获取您的屏幕分辨率并更改脚本中的值。

垂直运动的示例内容,将值 768 更改为屏幕垂直分辨率。

borderxl=$XPOS
borderyu=0

borderxr=$XPOS
borderyd=768

水平运动的示例内容,将值 1366 更改为屏幕水平分辨率。

borderxl=0
borderyu=$YPOS

borderxr=1366
borderyd=$YPOS

原始脚本来自此帖子,版权也归于此帖子让鼠标保持在圆圈内

修改后的脚本:

#!/bin/bash

POS=$(xdotool getmouselocation | sed 's/:/ /g')
XPOS=$(echo $POS | cut -d' ' -f2)
YPOS=$(echo $POS | cut -d' ' -f4)

borderxl=0
borderyu=$YPOS

borderxr=1366
borderyd=$YPOS

check=0

if [ $borderxl -gt $borderxr ]
then
        check=1
fi

if [ $borderyu -gt $borderyd ]
then
        check=1
fi
if [ $check -ge "1" ]
then
        echo "Make sure the first coordinate pair refers to the upper left corner"
        echo "and the second pair refers to the lower right one."
fi

if [ $check -lt "1" ]
then
        while [ true ]
        do
                check=0
                xpos=`xdotool getmouselocation | awk '{ print $1}'`
                xpos=${xpos:2}
                #xpos=`getcurpos | awk '{ print $1}'`
                ypos=`xdotool getmouselocation | awk '{ print $2}'`
                ypos=${ypos:2}
                #ypos=`getcurpos | awk '{ print $2}'`

                if [ $xpos -gt $borderxr ]
                then
                        check=1
                        xpos=$borderxr
                fi

                if [ $ypos -gt $borderyd ]
                then
                        check=1
                        ypos=$borderyd
                fi

                if [ $xpos -lt $borderxl ]
                then
                        check=1
                        xpos=$borderxl
                fi

                if [ $ypos -lt $borderyu ]
                then
                        check=1
                        ypos=$borderyu
                fi


                if [ $check -ge "1" ]
                then
                        xdotool mousemove $xpos $ypos
                fi
        done   
fi

脚本有问题。

为这两个脚本创建快捷键,我找不到杀死进程的方法,强制注销是唯一的方法。最初我创建了快捷键 Alt+x 和 Alt+y,它们都可以正常工作。但杀死进程,我无法实现。

在此处输入图片描述

相关内容