是的

是的

在Ubuntu桌面上,我可以使用xdotool鼠标单击(例如单击链接)并在不在前面的窗口(例如Firefox的窗口)上按一些键(例如Ctrl+ ),以便我可以在另一个不同的窗口上工作s需要位于其他窗口之上,同时让其xdotool在隐藏窗口上工作?

谢谢。

答案1

要获取窗口 ID,请运行:

sleep 5; xdotool getactivewindow

这将等待 5 秒钟,然后获取活动窗口 ID。运行此命令,单击 Firefox,然后等待其完成。在下一步中使用该 ID。

您可以通过执行以下命令将击键直接发送到特定窗口:

xdotool type --window [window ID] Hello World

使用命令man xdotool来获取命令和功能的完整列表!

Xdotool 将生成按键事件并将它们直接发送到窗口 Firefox。但是,将击键发送到特定窗口使用的 API 与简单地在活动窗口中键入不同的 API,并且许多应用程序只是忽略它们。

答案2

是的

Xdotool 可用于将输入发送到不在前面的窗口。但是,并非所有窗口都会接受此类输入。例如,xterm除非您选中“允许发送事件”选项,否则不会。Chromium也没有。然而,至少从 2019 年开始,Firefox 确实可以工作。

以下是在所有 Firefox 窗口中重新加载当前选项卡的示例:

xdotool search --class firefox key --window %@ Ctrl+F5

答案3

您可以使用以下命令自动激活此窗口并返回到之前激活的窗口:(例如将 Space 发送到 Firefox)

activewindow=$(xdotool getactivewindow)
xdotool windowactivate --sync $(xdotool search --name "Firefox") key space
xdotool windowactivate "$activewindow"

答案4

这对我有用,但略有改变。我无法使用内联执行让它工作。

    activewindow=$(xdotool getactivewindow)
    wantedwindow=$(xdotool search --name "Firefox")
    xdotool windowactivate $wantedwindow
    (xdotool commands here, starting with xdotool e.g. xdotool mousemove 0 0)
    xdotool windowactivate $activewindow

相关内容