我一直在使用xdotool type
过去只能在快捷方式上输入耸肩xdotool type '¯\_(ツ)_/¯'
。这可行,但总是需要相当长的时间,并导致整个桌面冻结(完全冻结,而不仅仅是输入)几秒钟。不过并没有太打扰我。
现在我需要一种方法来从文件中读取内容,对其进行操作,然后将其输入。我想使用 xdotool 来完成该任务,如下所示:
while read URL; do
xdotool type "!play $URL" && sleep 1 && xdotool key Return && sleep 1
done < <(mycommand)
The mycommand
输出大约 20 行 URL。一旦我运行该脚本,我的桌面(gnome3.26,archlinux)就完全冻结了。我通过 SSH 连接到机器,杀死了 bash 进程(成功),但这对冻结状态没有任何作用。十分钟后它再次工作,命令确实运行了(如 xdotool 按预期正确输入了所有内容),但我必须重新启动 X 服务器,因为我的鼠标不再工作了。
我需要一种自动输入的方法,例如xdotool type
确实有,但没有这种冻结行为。最好的情况是有一个工具可以立即输入我传递的整个文本。我想到了一个解决方案xclip
然后只是模拟粘贴和输入的按键,但我认为必须有更好的解决方案。
这个问题与xdotool
已经出现在我身边大约两年了(一直在 gnome + archlinux 上),直到现在我除了耸耸肩之外从来不需要它。我猜这不仅仅是我使用的版本中的错误。只是为了完整性:
$ xdotool --version
xdotool version 3.20160805.1
我在 Xubuntu 上遇到了同样的问题,所以这不仅仅是 GNOME 的问题。看起来问题出在 xserver、专有 nvidia 驱动程序和一些合成管理器之间的交互中。
在 Xubuntu 中,我通过禁用合成器(设置管理器 > 窗口管理器调整 > 合成器)解决了这个问题。结果,撕裂开始了,这个命令部分地处理了这个问题(在自动启动中添加):nvidia-settings --assign CurrentMetaMode="1920x1080 +0+0 { ForceCompositionPipeline = On }"
.
理论上,您可以通过更改视频驱动程序或从 X 切换到 Wayland(以及从 xdotool 切换到 ydotool)来解决此问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)