独立于 WM 的方式来聚焦/提升紧急窗口

roo*_*ays 9 gnome window-manager x11 focus metacity

我想要一个键盘快捷键来“转到”(焦点 + 提升)窗口,并设置了 URGENT 标志,看起来像 URGENT:它出现在任务栏(Gnome + Metacity)上,即使它在桌面上而不是当前并开始眨眼(感谢@slm 指出)。

此窗口可能位于当前虚拟桌面之外的其他虚拟桌面上。

在这种特殊情况下,Skype 窗口设置了紧急标志,因此它们出现在alt-tab弹出窗口(metacity WM)中,但如果它不在当前虚拟桌面上,我无法切换到此窗口。

我正在调查xdotoolwmctrl指挥,但没有运气。

任何想法或线索?


更新:看来,我在谈论_NET_WM_STATE= _NET_WM_STATE_DEMANDS_ATTENTION...

roo*_*ays 4

我想我在这里找到了一些可行的解决方案。

提供的 Bash 脚本正是我正在寻找的内容,并且它们显然利用了wmctrl

为了快速访问/存档的目的,我将两个脚本复制粘贴到此处:

跳转到需要注意的窗口:

#!/bin/bash
activeWinIdLine=`xprop -root | grep _NET_ACTIVE_WINDOW\(WINDOW\) `
activeWinId="${activeWinIdLine:40}"
echo $activeWinId > ~/activeWinId
for id in `wmctrl -l | cut -d " " -f 1`; do
    xprop -id $id | grep "_NET_WM_STATE_DEMANDS_ATTENTION" 2>&1 > /dev/null
    if [ "$?" = "0" ]; then
        wmctrl -i -a $id
        exit 0
    fi
done
exit 1
Run Code Online (Sandbox Code Playgroud)

跳回到您正忙着的窗口:

#!/bin/bash
if [ -f ~/activeWinId ]; then
    origWinId=`cat ~/activeWinId`
    wmctrl -i -a $origWinId
fi
Run Code Online (Sandbox Code Playgroud)

感谢您的讨论,特别是@slm 为我指明了正确的方向。