在 bash 脚本中切换焦点

问题描述 投票:0回答:1

请帮助我理解在 Linux 上的 Openbox 中使用热键组合调用的 Bash 脚本中尝试使窗口失去焦点时遇到的一个小问题的根源。

我的脚本中有几行:

wmctrl -F -r "${TERMINAL_TITLE}" -b add,shaded,below
xdotool key alt+Tab

第一行遮蔽了相关窗口,并将其“放置”在所有其他窗口下方,但它仍然保持焦点。理论上,第二行应该将焦点移动到堆栈中的下一个窗口......

...确实如此!但前提是脚本使用 gmrun 运行,或者在终端本身中运行(因为我试图隐藏和散焦的窗口是终端模拟器)。

但是,如果使用 Openbox 热键(这正是我需要的)调用脚本,或者在邻居终端中运行(仅用于测试),则它无法按预期工作。

无论如何,我都不是一个熟练的 bash 用户。我通常可以在这里或那里拼凑一个简单的脚本来满足我卑微的需求,但在这里我只是迷失了。将不胜感激的建议。

linux bash focus xdotool
1个回答
0
投票

好吧,这可能是一个 XY 问题,至少在某种程度上是这样。目前无法使用 wmctrl 控制焦点。然而,如果我停止尝试这样做,而不是遮蔽窗口,只是将其最小化 - 我实际上实现了我需要做的事情。虽然这也不能用 wmctrl 完成,必须使用 xdotool:

xdotool windowminimize $( xdotool search --name "${TERMINAL_TITLE}" )

焦点开关。完成!

© www.soinside.com 2019 - 2024. All rights reserved.