Jac*_*ijm 14
假设你已经安装了wmctrl(sudo apt-get install wmctrl如果没有就运行):
命令:
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')"
Run Code Online (Sandbox Code Playgroud)
将升起最后打开的gedit窗口。用任何其他应用程序替换它。
pgrep gedit
Run Code Online (Sandbox Code Playgroud)
获取 gedit 的 pid
wmctrl -lp
Run Code Online (Sandbox Code Playgroud)
列出所有窗口和它们所属的 pid
awk '{ print $1 }'
Run Code Online (Sandbox Code Playgroud)
拆分 window-id(行中的第一个字符串)
$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')
Run Code Online (Sandbox Code Playgroud)
因此找到最后创建的窗口的窗口 ID gedit(输出wmctrl -lp按创建的时间顺序列出窗口,如果应用程序有多个窗口,则tail -1返回最后一个)。
wmctrl -ia
Run Code Online (Sandbox Code Playgroud)
随后通过其升起窗户 window-id
...以应用程序作为参数运行:
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')"
Run Code Online (Sandbox Code Playgroud)
switchto.sh运行它(例如)
/path/to/switchto.sh firefox
Run Code Online (Sandbox Code Playgroud)理论上的命令:
xdotool search --class gedit windowactivate
Run Code Online (Sandbox Code Playgroud)
应该做(某种)同样的事情;在这种情况下,它应该提高第一个找到的窗口gedit。
然而,它似乎不那么健壮。在我的系统 (Unity) 上,它什么也没做。