在Linux上获取输入插入符号周围的文本

在Linux上获取输入插入符号周围的文本,linux,ubuntu,x11,voice-recognition,Linux,Ubuntu,X11,Voice Recognition,动机:我试图编写脚本,将击键发送到当前关注的窗口。现在我使用xdool,它允许我发送原始的击键。但是,我希望精确的击键是聚焦窗口中输入插入符号周围当前文本的函数 问题:是否有一种通用的方式来读取文本输入插入符号的状态——它的当前位置以及它周围的文本?直观地说,我想要当前“文本框”的内容以及光标在该文本框中的位置。也许这在一般情况下是不可能的,但是有没有一种方法可以适用于emacs和firefox?我正在运行Ubuntu Linux 进一步的动机:由于严重的RSI,我用语音而不是打字来控制我的电脑

动机:我试图编写脚本,将击键发送到当前关注的窗口。现在我使用
xdool
,它允许我发送原始的击键。但是,我希望精确的击键是聚焦窗口中输入插入符号周围当前文本的函数

问题:是否有一种通用的方式来读取文本输入插入符号的状态——它的当前位置以及它周围的文本?直观地说,我想要当前“文本框”的内容以及光标在该文本框中的位置。也许这在一般情况下是不可能的,但是有没有一种方法可以适用于emacs和firefox?我正在运行Ubuntu Linux

进一步的动机:由于严重的RSI,我用语音而不是打字来控制我的电脑。这是通过设置由说出不同短语触发的语音激活脚本来实现的。在听写英语散文时,在句首自动大写单词会很有帮助。这种自动大写可以通过读取输入插入符号前的字符来实现,检查它们是否包含句点,如果包含句点,则将我通过语音口述的下一个短语的开头大写

非常感谢!如果有人能在这里帮助我,这将大大提高我的日常可访问性。

由于X11没有标准的小部件工具包,而只有大量独立开发的任意工具包,因此没有通用的方法来实现这一点

就X11和在其级别上运行的工具(如xdotool)而言,只有
InputOutput
类型的窗口(即接收事件并可以绘制的可见窗口)或只接收事件的
Input
。可以说,没有进一步完善的“小部件”。你得到一个像素网格,你可以画到它

可访问性接口是工具包的负担(或者如果您不使用工具包,那么您就是一个坏蛋,您就是开发人员),以实现:

绝对通用的方法是截取当前聚焦窗口的屏幕,采用基于计算机视觉/机器学习的解决方案来识别插入符号,然后OCR识别其周围的文本行。老实说,IMHO这样做可能比希望可访问性接口得到正确实现要可靠得多