Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 获取Xorg下插入符号(输入文本光标)的X/Y位置?_Linux_Gtk_Xorg_Xdotool - Fatal编程技术网

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

Linux 获取Xorg下插入符号(输入文本光标)的X/Y位置?,linux,gtk,xorg,xdotool,Linux,Gtk,Xorg,Xdotool,我想在X上运行的任何Linux应用程序(GTK、Qt、Electron等)中显示一个用户正在键入的弹出窗口 我想出了创建popover的办法,现在我正试图找出如何获取输入文本光标相对于屏幕的坐标(当您键入时,什么东西会闪烁,不确定它是否被称为“插入符号”) 我知道我可以通过xdool获取鼠标的位置信息: xdotool getmouselocation 我需要同样的东西,但对于文本光标,在当前聚焦的窗口中 我不知道如何做到这一点。如果有人能给我指出正确的方向,我会很高兴的。因此,在做了一些研究

我想在X上运行的任何Linux应用程序(GTK、Qt、Electron等)中显示一个用户正在键入的弹出窗口

我想出了创建popover的办法,现在我正试图找出如何获取输入文本光标相对于屏幕的坐标(当您键入时,什么东西会闪烁,不确定它是否被称为“插入符号”)

我知道我可以通过
xdool
获取鼠标的位置信息:

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


我不知道如何做到这一点。如果有人能给我指出正确的方向,我会很高兴的。

因此,在做了一些研究之后,我找到了一种实现这一点的方法:

  • 使用
    xdool
    粘贴一些随机字符串
  • 使用OCR查找随机字符串的坐标
  • 使用
    xdool
    删除随机字符串
问题是这种方法非常慢(最多10秒,取决于屏幕上有多少文本)


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

X不知道文本输入插入符号在哪里。我不认为你的想法是可以实现的(没有应用程序或工具包的合作)。我同意@jku的观点,X对此并不了解,只是你点击了某个地方(如果需要点击的话),并且它已经被应用程序处理了。它根本不知道你是否在输入文本!而且,我认为这叫做光标。有人告诉我一种方法是使用GTK模块。听起来很有趣。这个节目的目的是什么?只是出于好奇,它是开源语法还是什么?我不知道什么是@linux_-kettler,但我试图实现一个带有重音字母的工具提示,比如macOS或移动操作系统,它可以通过按住一个键并在单击时插入重音字母来激活。