在Xorg下获取插入符号(输入文本光标)的X/Y位置?

nkk*_*law 10 linux gtk xorg xdotool

我想在X上运行的任何Linux应用程序(GTK,Qt,Electron等)中,在用户输入的位置上方显示一个弹出窗口.

我想出了创建弹出窗口,现在我想弄清楚如何获取输入文本光标的坐标(键入时闪烁的内容,不确定它是否被称为"插入符"?)相对于屏幕.

我知道我可以获得有关鼠标所在位置的信息xdotool:

xdotool getmouselocation
Run Code Online (Sandbox Code Playgroud)

我需要相同的东西,但对于文本光标,在当前聚焦的窗口中.

我不知道如何实现这一目标.如果有人能指出我正确的方向,我会很高兴.

nkk*_*law 0

因此,经过一些研究后,我找到了一种实现此目的的方法:

  • 用于xdotool粘贴一些随机字符串
  • 使用 OCR 查找随机字符串的坐标
  • 用于xdotool删除随机字符串

问题是这种方法非常慢(最多 10 秒,具体取决于屏幕上有多少文本)。

我还尝试比较屏幕截图(插入文本之前/之后),它的速度要快得多,但精确度要低得多。