使用热键将特定字符串粘贴到文本字段中的脚本

时间:2018-06-20 18:23:56

标签: linux scripting paste shortcut gnome

我正在尝试找到一种方法,可以在任何应用程序上输入特定的键盘序列后粘贴预定义的字符串。

例如,如果我必须将url或密码粘贴到字段中,则可以在一个隐藏的脚本中输入该密码,然后按[ctrl] + [5]时,它将在上面写“ example123”我的光标所在的文本字段。

理想情况下,无需复制到剪贴板(我宁愿将我的东西保留在剪贴板上,也避免在其他地方误粘贴密码等)。

我已经尝试了到目前为止找到的所有解决方案,包括xclip,xdotool和xvkdb。它们全部都不起作用或真的不一致:它们有时仅粘贴字符串,而当它们粘贴时,通常仅是字符串的一部分(“ ample123”而不是“ example123”)。

我想到了使用compose键,无论如何我都会大量使用它在美国键盘上用法语书写,但是似乎它仅支持1个字符序列,因为当我修改.XCompose以包括自定义输出序列时,什么都不会打印len> 1。

我将Gnome作为DE使用Ubuntu 18.04。理想情况下,某些在登录时也可以工作的东西(例如组合键)。

1 个答案:

答案 0 :(得分:0)

您需要遍历Gnome或您的网页的文档对象模型。我担心的是,使用台式机脚本您将无法访问网页,因为您将需要能够建立目标以向其发送字符串。我在您的问题中看到您尝试使用“ x {tool-name}”来抓取文本字段元素。确实不是问题。问题是实用地获取文本框的GUI元素。在用户加载的网页中访问此内容的最简单方法是使用WebExtensions API,这是为大多数现代浏览器进行扩展的方法。否则,如果您只能访问Gnome的GUI而无法使用,我会尝试LDTP,它是一个用于测试的库,但看起来它也可以用于自动化。

有关键盘快捷键: 脚本的激活方式与激活方式无关紧要。我只需要转到Gnome / Settings / Keyboard并设置将脚本保存为Command的路径即可。如果您使用WebExtension路线,则需要将快捷方式构建到扩展程序中。