我可以在没有 xdotool 的情况下通过终端模拟鼠标移动吗?

我可以在没有 xdotool 的情况下通过终端模拟鼠标移动吗?

我想编写一个脚本来防止计算机通过虚拟摆动鼠标来锁定。但是,我xdotool正在使用的计算机上没有,并且由于我不是root而无法安装。有没有一种方法可以在不使用 的情况下移动光标xdotool

答案1

根据回答您可以使用命令行移动鼠标指针,步骤如下:

  1. 首先你需要找到鼠标输入设备

    grep mouse /proc/bus/input/devices | grep event
    

你应该会看到类似H: Handlers=mouse0 event7我的情况。如果您有多个鼠标(例如触摸板),它可能会输出多于一行。重要的是event7,这意味着您将写信给/dev/input/event7

  1. 然后以下代码会将鼠标指针向右移动 100 像素:

    seconds=$(date +%s)
    type=2      # EV_REL
    code=0      # REL_X
    value=100   # 100 pixels
    
    printf '%08X%04X%04X%08X%08X\n' $value $code $type 0 $seconds | xxd -r -p | \
        perl -0777e 'print scalar reverse <>' > /dev/input/event7
    
    type=0      # EV_SYN
    code=0      # SYN_REPORT
    value=0
    
    printf '%08X%04X%04X%08X%08X\n' $value $code $type 0 $seconds | xxd -r -p | \
        perl -0777e 'print scalar reverse <>' > /dev/input/event7
    

我没有测试这个过程是否相当于中断锁定机制意义上的真实鼠标移动。

答案2

由于您不是 root 用户而无法安装xdotool并不意味着您无法运行该程序,因为您不需要任何特殊权限。

只需下载并编译从源头

如果您无法访问编译器,那么您可以直接下载适合您系统的软件包并从软件包中提取文件(首次.deb使用时,可以使用ar提取).rpmrpm2cpio

相关内容