显示*实时*鼠标光标坐标?(光标修改/覆盖)另外,复制到剪贴板?

显示*实时*鼠标光标坐标?(光标修改/覆盖)另外,复制到剪贴板?

我正在寻找一种可以显示当前鼠标光标坐标的解决方案实时(即不是 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。

更好的解决方案:如果您有管理员权限,请安装watchsudo apt-get install watch),然后在新终端中执行此操作:

watch -ptn 0 "xdotool getmouselocation"

它使用xdotool但不需要bash


謝謝b_laoshi的建议!

答案2

获取坐标并复制到剪贴板

实时显示坐标已经解决,所以我不会在这里重复这个答案。通过创建脚本并配置键盘快捷键来运行它,我们可以将鼠标坐标复制到剪贴板格式x,y。方法如下:

  1. 安装 xdotool 用于获取坐标,安装 xsel 用于管理剪贴板。

    sudo apt-get install xdotool xsel
    
  2. 创建一个新的脚本文件,内容如下。保存脚本并使其可执行。

    #!/bin/bash
    xdotool getmouselocation | grep -oP "[0-9]+ y:[0-9]+" | sed 's/ y:/,/' | tr -d '\n' | xsel --clipboard
    
  3. 创建自定义键盘快捷键它会调用你的脚本来获取所需的组合键。

答案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终端置于左上角,具有预期的大小。
  • 告诉+sbxterm 不要显示滚动条。
  • 避免-sl 0了不必要的滚动缓冲区。
  • tput civis使得光标不可见(这会很烦人)。
  • 允许stty quit "^["使用Esc键而不是来退出Ctrl-\
  • 关于sleep值,我发现 0.1 太大;0.05 似乎可以。

相关内容