xdotool - 为什么在 运行 命令之前休眠?
xdotool - Why sleep before running commands?
我正在使用 xdotool
自动执行 运行 命令、打开新标签等
问题是在当前 window 上执行此操作时,我必须专门睡一段时间或在执行任何操作之前使用 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
我从很少的来源读到的是
% sleep 1; xdotool type "$(printf "hello\nworld\n")" (the sleep is for
letting me release my actual 'return' key before typing)
我了解到,当我通过按键盘上的 'Enter' 专门调用我的脚本时,会按下 'return' 键。但是为什么不自动释放呢?
即使 xdotool
使用 xdotool type
打字时 'return' 键也不应在那个时候松开,否则每个字母都应该一行接一行,而不是来在同一行
这个问题与键盘本身的状态有关,而不是任何特殊的 OS 概念。如果键仅在从 "up" 状态转换为 "down" 状态时被称为 "pressed"。
当应用程序尝试发送按键时,它会先发送按键按下,然后再发送按键弹起。如果键已经处于 "down" 状态,发送 keydown 不会注册为按键,因为键的状态没有从 "up" 转换到 "down",它只是停留在"down" 状态。 (在已经处于 "down" 状态时发送 keydown 相当于简单地按住该键,而不是再次按下它。)
我正在使用 xdotool
自动执行 运行 命令、打开新标签等
问题是在当前 window 上执行此操作时,我必须专门睡一段时间或在执行任何操作之前使用 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
我从很少的来源读到的是
% sleep 1; xdotool type "$(printf "hello\nworld\n")" (the sleep is for letting me release my actual 'return' key before typing)
我了解到,当我通过按键盘上的 'Enter' 专门调用我的脚本时,会按下 'return' 键。但是为什么不自动释放呢?
即使 xdotool
使用 xdotool type
打字时 'return' 键也不应在那个时候松开,否则每个字母都应该一行接一行,而不是来在同一行
这个问题与键盘本身的状态有关,而不是任何特殊的 OS 概念。如果键仅在从 "up" 状态转换为 "down" 状态时被称为 "pressed"。
当应用程序尝试发送按键时,它会先发送按键按下,然后再发送按键弹起。如果键已经处于 "down" 状态,发送 keydown 不会注册为按键,因为键的状态没有从 "up" 转换到 "down",它只是停留在"down" 状态。 (在已经处于 "down" 状态时发送 keydown 相当于简单地按住该键,而不是再次按下它。)