【问题标题】:Get text around input caret on Linux在 Linux 上获取输入插入符号周围的文本
【发布时间】:2021-02-10 02:03:57
【问题描述】:

动机:我正在尝试编写将击键发送到当前焦点窗口的脚本。现在我使用xdotool,它可以让我发送原始击键。但是,我希望确切的击键成为焦点窗口中输入插入符号周围当前文本的函数。

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

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

非常感谢!如果有人可以在这里帮助我,那将大大增加我的日常可访问性。

【问题讨论】:

    标签: linux ubuntu x11 voice-recognition


    【解决方案1】:

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

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

    可访问性接口是工具包的负担(或者,如果您不使用工具包——那么你就是一个坏蛋——你,开发者),要实现:https://www.freedesktop.org/wiki/Accessibility/

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-28
      • 2011-12-19
      • 2011-07-13
      • 2011-06-23
      • 2011-11-12
      • 2019-04-20
      • 2018-06-08
      • 1970-01-01
      相关资源
      最近更新 更多