我过去一直在使用xdotool type
,只是在使用xdotool type '¯\_(ツ)_/¯'
的快捷方式上键入一个耸肩脸。这是可行的,但总是需要相当长的时间,并导致整个桌面冻结(完全,而不仅仅是输入)几秒钟。不过,我也没怎么在意。
现在我需要一种方法来从文件中读取内容,操作它,并将其键入。我想使用xdotool来完成这个任务,如下所示:
while read URL; do
xdotool type "!play $URL" && sleep 1 && xdotool key Return && sleep 1
done < <(mycommand)
mycommand
提供了大约20行URL。一旦我运行脚本我的桌面(gnome3.26,archlinux)完全冻结。我SSHD到机器杀死bash进程(成功),但这并没有做任何冻结状态。10分钟后,它再次工作,命令确实运行了(如在,xdotool键入的所有内容都符合预期),但我不得不重新启动X服务器,因为我的鼠标不再工作了。
我需要一种像xdotool type
一样自动输入的方法,但没有这种冻结行为。最好的情况是一个工具,它可以立即输入我传递的整个文本。我想到了一个实现xclip
的解决方案,然后只是模拟粘贴和回车的按键,但我认为必须有一个更好的解决方案。xdotool
的这个问题已经存在了大约两年了(一直在gnome + archlinux上),直到现在我从来没有需要它超过耸耸肩虽然。我猜这不仅仅是我使用的版本中的一个bug。只是为了完整:$ xdotool --version xdotool version 3.20160805.1
4条答案
按热度按时间6qftjkof1#
我在Xubuntu上遇到了同样的问题,所以这不仅仅是GNOME的问题。看起来问题出在xserver、专有的nvidia驱动程序和一些合成管理器之间的交互中。
在Xubuntu中,我通过禁用合成器(设置管理器〉窗口管理器调整〉合成器)解决了这个问题。因此,开始撕裂,这部分由以下命令处理(在autostart中添加):
nvidia-settings --assign CurrentMetaMode="1920x1080 +0+0 { ForceCompositionPipeline = On }"
.理论上,您可以通过更改视频驱动程序或从X切换到Wayland(以及从xdotool切换到ydotool)来解决此问题。
q5iwbnjs2#
我发现这是一个来自xdotool的bug:
https://github.com/jordansissel/xdotool/issues/281
我建议你去别的地方,这将完全做你想做的,没有任何延迟:
https://github.com/autokey/autokey
安装后,您可以定义一个快捷方式或缩写键入您的短语。
这里我定义了alt+z来触发你想要的,还有“pl +一个缩进”来触发它
tgabmvqs3#
我调查这一点,因为这对我来说也是一个问题,我发现:
当您只输入10个字符时:
你在黑暗中为0。142372864秒
当你输入100个字符时:
您处于黑暗中1,054958080秒
所以我最好的猜测是,当你使用类型时,每个字符都是一个接一个地输入的,增加了时间。
似乎改善了一点,但不是在别名中使用时
vbopmzt14#
作为解决方法,您可以将文本复制到剪贴板并粘贴它,而不是键入: