3

我正在使用xdotool自动运行命令、打开新选项卡等。

问题是在当前窗口上执行此操作时,我必须专门睡眠一段时间或xdotool keyup Return在执行任何操作之前使用,否则xdotool不会按回车键。

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")" (睡眠是为了让我在输入之前释放我实际的“返回”键)

我知道当我通过按键盘上的“Enter”专门调用我的脚本时按下了“返回”键。但是为什么不自动发布呢?

即使在xdotool输入内容时xdotool type,不应该直到那个时候才释放'return'键,或者每个字母都应该一行接一行,而不是在同一行

4

1 回答 1

5

这个问题更多地与键盘本身的状态有关,而不是任何特殊的操作系统概念。如果键仅在从“向上”状态转换为“向下”状态时才被称为“按下”。

当应用程序尝试发送按键时,它将发送一个 keydown 和一个 keyup。如果键已经处于“向下”状态,则发送 keydown 不会注册为按键,因为键的状态没有从“向上”转换为“向下”,它只是停留在“向下”状态。(在已经处于“按下”状态时发送 keydown 相当于简单地按住键,而不是再次按下它。)

于 2015-12-04T16:22:54.917 回答