同时发送 xdotool keypresses/clicks 给多个 windows
Send xdotool keypresses/clicks to multiple windows simultaneously
我希望能够 运行 一个 bash 脚本,它将按键和点击发送到多个 windows。这不一定必须使用 xdotool 来完成,如果有替代方法,我会很乐意使用它。不过,它最好与 bash 一起使用。
所以,如果我有三个 windows,我想将 "w" 键发送到所有这些,我需要做一些事情,比如将活动的 window 设置为每个快速连续发送 w 键。
我希望能够同时进行,所以这不会很好用。
您需要事先知道 window 名称,即在 运行 脚本之前。您可以这样做
#!/bin/bash
for winname in "$@"
do
xdotool type --window $(xwininfo -int -name "$winname" | egrep -o 'Window id: [0-9]+' | cut -d ' ' -f 3) w
done
输出
$./script1.bash "*Untitled 1 - Mousepad" "*(Untitled)" "[No Name] + - GVIM"
以上脚本将 w
键击发送到命令行上指定的所有 window 名称。
PS:对我来说,我按以下顺序打开了 3 个编辑器:Mousepad、Leafpad 和 GVIM
您可以使用 xdotool
为您完成繁重的工作。
它将使用名称、class 或 class 名称搜索 window(使用 xprop 或 xwininfo 获取详细信息)。
下面是一个示例,它将 "Hello World" 输出到 libreoffice writer 文档的所有 运行 处。
#!/bin/bash
for pid in $(xdotool search --class "libreoffice-writer")
do
xdotool type --window $pid 'Hello World'
done
我希望能够 运行 一个 bash 脚本,它将按键和点击发送到多个 windows。这不一定必须使用 xdotool 来完成,如果有替代方法,我会很乐意使用它。不过,它最好与 bash 一起使用。
所以,如果我有三个 windows,我想将 "w" 键发送到所有这些,我需要做一些事情,比如将活动的 window 设置为每个快速连续发送 w 键。
我希望能够同时进行,所以这不会很好用。
您需要事先知道 window 名称,即在 运行 脚本之前。您可以这样做
#!/bin/bash
for winname in "$@"
do
xdotool type --window $(xwininfo -int -name "$winname" | egrep -o 'Window id: [0-9]+' | cut -d ' ' -f 3) w
done
输出
$./script1.bash "*Untitled 1 - Mousepad" "*(Untitled)" "[No Name] + - GVIM"
以上脚本将 w
键击发送到命令行上指定的所有 window 名称。
PS:对我来说,我按以下顺序打开了 3 个编辑器:Mousepad、Leafpad 和 GVIM
您可以使用 xdotool
为您完成繁重的工作。
它将使用名称、class 或 class 名称搜索 window(使用 xprop 或 xwininfo 获取详细信息)。
下面是一个示例,它将 "Hello World" 输出到 libreoffice writer 文档的所有 运行 处。
#!/bin/bash
for pid in $(xdotool search --class "libreoffice-writer")
do
xdotool type --window $pid 'Hello World'
done