如果按下了 alt 键,则自动按下键盘按键 9 次

如果按下了 alt 键,则自动按下键盘按键 9 次

我想制定一个自动化策略,如果我按下 Alt 键和任何其他键,它将模拟按下该键的键盘按键 9 次。

例如,我按下 Alt + q,它将模拟按下 q 9 次。例如,如果我在记事本中,我将看到

qqqqqqqqq

现在,大多数教程都展示了如何将输出反转为文本文件,例如通过运行

myScript.sh > out.txt

不,我不想这样。我想在后台运行我的脚本,并在计算机的任何地方使用它,每当我按下 alt + 任意键时,我都会看到该键被按下 9 次。例如,这在游戏中很有用。

我尝试了以下方法,但不起作用。我没有看到它检测到任何东西

#!/bin/bash

while true; do
    read -rsn1 key < /dev/null

    # Check if Alt key is pressed (Escape sequence for Alt is "\e")
    if [[ "$key" == $'\e' ]]; then
        read -rsn1 key < /dev/null  # Read the next key

        # Check if Alt + alphabetical character was pressed (excluding 'z')
        if [[ "$key" =~ [a-y] ]]; then
            xdotool type --delay 100 "$key$key$key$key$key$key$key$key$key"
        fi
    fi
done
  • 我正在运行我的脚本:
$ chmod +x ./script.sh
$ ./script.sh &

答案1

#!/bin/bash

while true; do
    read -rsn1 key < /dev/null

    # Check if Alt key is pressed (Escape sequence for Alt is "\e")
    if [[ "$key" == $'\e' ]]; then
        read -rsn1 key < /dev/null  # Read the next key

        # Check if Alt + alphabetical character was pressed (excluding 'z')
        if [[ "$key" =~ [a-y] ]]; then
            xdotool type --repeat=9 --delay=100 "$key"
        fi
    fi
done

您需要--repeat按下的次数。如果没有,
您可能需要。xdotool keydowntype--repeat

笔记:您可能想要定位特定窗口。 window="$(xdotool getactivewindow)"

或者,您可以提示用户选择:xdotool selectwindow

相关内容