xdotool - 为什么在运行命令之前睡觉?

时间:2015-12-04 16:12:08

标签: bash terminal xdotool

我使用xdotool自动运行命令,打开新标签等。

事情就是在当前窗口进行操作时,我要专门睡一段时间或在做任何事情之前使用xdotool keyup Return,否则xdotool不会按Enter键键。

kartik@kartikpc:~/junk/xdotool$ cat automate 
#!/bin/bash

# Release the Return key
# xdotool keyup Return
# Or sleep 1

xdotool type --delay 1 --clearmodifiers "clear"
xdotool key --clearmodifiers Return

kartik@kartikpc:~/junk/xdotool$ source automate 
clearkartik@kartik-lappy:~/junk/xdotool$ clear

我从极少数来源读到的是

  

%睡眠1; xdotool type" $(printf" hello \ nworld \ n")" (睡觉是为了   让我释放我的实际回报'输入前的键)

我理解'返回'当我通过按“输入”来专门调用我的脚本时按下键在键盘上。但为什么它不会自动发布?

即使xdotool使用xdotool type输入内容,也不应该返回'密钥发布到那个时候,或者每个字母应该一行一行,而不是出现在同一行

1 个答案:

答案 0 :(得分:4)

这个问题与键盘本身的状态有关,而不是任何特殊的OS概念。如果只说键是"按下"当它从" up"到"向下"状态。

当应用程序尝试发送按键时,它会发送一个keydown,后跟一个keyup。如果密钥已经在" down"因为关键的状态没有从" up"到了" down",它只是停留在" down"州。 (在已经处于"向下"状态下发送keydown相当于简单地按住键,而不是再次按下它。)