我试图制作一个通过热键切换窗口的脚本,我想看到的功能之一是“如果选择窗口处于活动状态,则切换到上一个窗口”
我尝试了以下方法:
#!/bin/bash
class=$1
command=$2
if xdotool search --classname "$class" > /dev/null ;then
if xprop -id $(xdotool getactivewindow) | grep -q "WM_CLASS.*\".*$class.*\"";then
### HERE ###
:#xdotool key --clearmodifiers 'alt+Tab'
else
wmctrl -x -a "$class"
fi
else
if [ -n "$command" ];then
$command &
disown
fi
fi
在标记为 HERE 的字符串之后,我尝试将 alt+Tab 键发送到 wm,但它效果不好,因为当我这样做时,我仍然持有ctrl
修饰符,这会导致切换器等待(或有时停止),所以我想只是告诉 gnome来切换窗口。
那么,有什么办法可以从 shell 切换回来吗?
答案1
我找到了一些扩展,它完成了我的脚本的一半工作,分叉它,修复它并添加我上面描述的功能,所以我认为这个问题可以结束。
https://github.com/CZ-NIC/run-or-raise/pull/10
简而言之,我用过
global.display.get_tab_list(0, null)[1];
为了获得lastWindow,所以我使用扩展api来聚焦它。