Linux下如何将全局热键绑定到WINE程序

你有没有在WINE下的Linux上安装过Windows程序,结果发现它不再绑定系统范围的热键?HTG有你一直在寻找的工作。

图片由djeucalyptus提供

概述 / 综述

每一个甚至想过转用Linux的人,可能很快就会遇到这样一个问题,那就是有一款Windows应用程序需要运行。我们已经向你展示了,你不能用酒来做到这一点。

对于本文作者来说,该应用程序是一个利用Microsoft SAPI4引擎的文本到语音转换应用程序。在WINE下安装程序轻而易举,然而完成后我很快发现,用于触发程序的各种操作(开始阅读、停止阅读等)的热键不起作用,这是WINE的一个已知问题。

我很高兴地说,经过长达数年的搜索,我终于找到了最终的解决方案,它是以GNU标准实用程序的形式出现的,它可以使用原生函数在X.org界面上进行操作。虽然xdotool不是唯一一个,但它是最容易上手的,并且已经在Ubuntu/Mint存储库中。

xdotool

xdotool程序可以从CLI执行许多与窗口相关的任务,也就是说,我们将使用的唯一两个任务是“搜索”和“键”。“搜索”功能就是这样做的,根据您为其设置的参数搜索窗口ID。“Key”(按键)功能使您可以模拟与窗口ID相关的按键操作。

安装和配置

假设您已经安装了WINE及其下面所需的程序。在本例中,我们将使用Balbolka作为“Windows”应用程序,因为它是我需要此解决方案的原始程序(第二个语音中心)的一个很好的免费软件副本。

如果你也选择了使用Balbolka,你需要激活它的热键功能。 注:即使在演示模式下,您也可能需要安装TTSReader或第二个语音中心,以便安装SAPI语音。

让它在后台运行,这样当我们将按键操作挂到它上面时,它就可以完成自己的工作。

通过执行以下命令安装xdotool:

全局绑定

xdotool程序本身并不能帮助我们将其全局绑定到热键,但我们可以使用已经存在的OOS热键系统。我们要做的是创建一个简单的脚本,该脚本将利用xdotool将我们想要的按键发送到OSS热键系统中,并从OSS热键系统调用它。

创建名为“start_read.sh”的脚本,脚本内容如下:

创建另一个脚本,这次名为“stop_read.sh”,内容如下:

注意:我知道这是一个不需要脚本的One行程序,但是Mint/Ubuntu的“键盘快捷键”程序,只是直接调用它并不是很合作。如果你知道怎么做,请在下面的评论中分享。

将此命令限制在其组件上,我们看到的是:

“-pid$(Pgrep Balbolka)”部分对我们要使用的程序执行“pgrep”,以确定其进程ID。这将把“search”的xdotool字段缩小到该PID。 “xdotool搜索-限制1-所有…。-name Balbolka“部分,进一步缩小了xdotool的搜索范围,并将返回的答案限制为1。因为在我们的案例中,程序返回了哪个窗口ID并不重要,只是限制了结果充当了”key“命令的格式化程序。您可能会发现您需要更多地按摩这一部分,如果它对您正在使用的程序很重要。 “xdotool键-Window%Window_ID%”ctrl+alt+F7“”部分将所需的击键发送到前面部分获得的windowID。

使脚本成为可执行的。

Linux薄荷键盘快捷键

在Linux Mint下,全局热键是在“键盘和快捷键”程序中设置的。

打开后,单击“Add”(添加)创建新的自定义快捷键:

给它一个名字,然后在“命令”下给出我们上面创建的一个脚本的完整路径,然后对第二个脚本重复这个过程。

现在,在“快捷键”栏中,点击“禁用”一词,即可获得设置新组合键的选项。 注意:如果愿意,您可以使用程序默认设置之外的其他设置。在某种意义上,创建到键绑定的“重新映射”,这取决于您使用的程序,否则就不会超出您的控制。

点击你选择的组合,听一听魔术。

Ubuntu键盘

点击加号添加一个新的快捷方式。给它一个名字,然后在“命令”下给出我们上面创建的一个脚本的完整路径。然后对第二个脚本重复这个过程。 现在点击“禁用”一词以获得设置新组合键的选项。

注:在重复铸币部分的注释时,如果您愿意,可以使用程序默认设置之外的其他设置。在某种意义上,创建到键绑定的“重新映射”,这取决于您使用的程序,否则就不会超出您的控制。

作者笔记

每次我认真考虑迁移到Linux时,这个问题都是我问题清单上的第一个问题。这并不是说linux没有问题,但这才是真正的障碍,对我来说,我试了一次又一次,问了他们在这一领域的朋友/人,甚至把它做成了一个赏金…。我很高兴这一传奇故事已经结束,我的灵魂终于可以休息了。 我希望我曾经帮助过某个人,让他们不必经历同样的磨难。

布朗医生:我和我的整个家族财产花了将近30年的时间才实现了那一天的愿景。天哪,有那么久了吗?

相关文章