📜  获取光标 ubuntu 的坐标 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:27:49.085000             🧑  作者: Mango

获取光标 Ubuntu 的坐标

在 Ubuntu 系统中,你需要通过终端命令和 Shell 脚本的方式来获取光标的坐标。接下来,我会为你详细介绍如何获取光标的坐标。

使用 xdotool 命令

xdotool 是 Linux 平台下一个命令行工具,它可以模拟鼠标和键盘等硬件输入事件。通过 xdotool 命令,我们可以获取当前光标所在的坐标位置。以下是获取光标坐标的 Shell 脚本。

#!/bin/bash

x=$(xdotool getmouselocation --shell | awk -F "[ =]" '{print $2}')
y=$(xdotool getmouselocation --shell | awk -F "[ =]" '{print $4}')

echo "The current mouse cursor is at: ($x,$y)"

以上代码中,x 变量代表光标的 X 坐标,y 变量代表光标的 Y 坐标。我们可以通过 xdotool getmouselocation --shell 命令获取光标的位置,并通过 awk 命令解析输出结果。接下来,我们将光标的坐标打印出来。

使用 xev 命令

xev 命令可以监听 X11 服务器上的事件,并将其输出到终端上。我们可以通过鼠标单击触发事件,并查找输出中的“button press”事件,该事件将包含鼠标的坐标信息。以下是获取光标坐标的 Shell 脚本。

#!/bin/bash

xev_out=$(xev)
coords=$(echo "$xev_out" | sed -n -e 's/^.*button press \([0-9]*\), *\?\([0-9]*\).*/\1 \2/p')

x=$(echo "$coords" | awk '{print $1}')
y=$(echo "$coords" | awk '{print $2}')

echo "The current mouse cursor is at: ($x,$y)"

以上代码中,x 变量代表光标的 X 坐标,y 变量代表光标的 Y 坐标。我们将 xev 命令的输出存储到 xev_out 变量中,并通过 sed 命令提取出包含光标坐标信息的输出行。接下来,我们使用 awk 命令解析坐标信息并打印输出。

总结

以上就是在 Ubuntu 系统下获取光标坐标的两种方法,可以根据实际情况选择其中一种。无论使用哪种方法,都需要先安装 xdotool 或 xev 命令。