我正在寻找一种可以显示当前鼠标光标坐标的解决方案实时(即不是 xdotool 也不是 xev)。
我需要将鼠标移动到某个位置,然后按 Alt-Tab 翻转到另一个窗口并在那里记录坐标。(这不会移动鼠标,因此坐标显示将保持不变)。
有一个 Windows 程序可以完美地实现这个目的 -http://download.cnet.com/Cursor-Position/3000-2383_4-75449858.html?tag=mncol;1
...但它甚至无法在 Wine 中启动。
或者,如果此解决方案可以通过按下热键将坐标(XXX,YYY 格式)复制到剪贴板,而不是显示坐标,那就更好了。
任何建议将不胜感激!
PS:我正在运行 Ubuntu 12.04 LTS。
答案1
斯巴达解决方案:你可以使用 xdotool 实时显示坐标如果你创建一个 bash 脚本。只需在新终端中执行此操作:
while true; do xdotool getmouselocation; sleep 0.2; clear; done
更改睡眠后的值,使其或多或少“实时”。这需要bash
,Ubuntu 中的默认用户 shell。
更好的解决方案:如果您有管理员权限,请安装watch
(sudo apt-get install watch
),然后在新终端中执行此操作:
watch -ptn 0 "xdotool getmouselocation"
它使用xdotool
但不需要bash
。
謝謝b_laoshi的建议!
答案2
获取坐标并复制到剪贴板
实时显示坐标已经解决,所以我不会在这里重复这个答案。通过创建脚本并配置键盘快捷键来运行它,我们可以将鼠标坐标复制到剪贴板格式x,y
。方法如下:
安装 xdotool 用于获取坐标,安装 xsel 用于管理剪贴板。
sudo apt-get install xdotool xsel
创建一个新的脚本文件,内容如下。保存脚本并使其可执行。
#!/bin/bash xdotool getmouselocation | grep -oP "[0-9]+ y:[0-9]+" | sed 's/ y:/,/' | tr -d '\n' | xsel --clipboard
创建自定义键盘快捷键它会调用你的脚本来获取所需的组合键。
答案3
显示鼠标指针位置的完整解决方案,基于xdotool getmouselocation
其他答案,在其自己的 xterm 终端中显示位置:
xterm -geometry 9x1+0+0 +sb -sl 0 -T 'Mouse location' -e '
set -e; tput civis; stty quit "^[";
while true; do
eval $(xdotool getmouselocation --shell) && printf "%4d %4d\r" $X $Y;
sleep .05;
done'
(如果需要的话可以把它写在一行上)。
一些解释:
- 将
-geometry 9x1+0+0
终端置于左上角,具有预期的大小。 - 告诉
+sb
xterm 不要显示滚动条。 - 避免
-sl 0
了不必要的滚动缓冲区。 - 这
tput civis
使得光标不可见(这会很烦人)。 - 允许
stty quit "^["
使用Esc键而不是来退出Ctrl-\。 - 关于
sleep
值,我发现 0.1 太大;0.05 似乎可以。