问题描述
我使用 Jupiter 作为电源管理器。现在我从它那里收到了大量的通知。我收到所有这些通知没有问题。
但是,我确实希望能够通过单击几下来清除所有 gnome shell 通知。目前,我的整个屏幕底部边都充满了通知,我不想一个一个地清除每一项。
所以我的问题是,如何清除这些通知?如果这在 ui 中是不可能的,是否可以编写一个扩展来做到这一点?我应该在哪里向 gnome 开发人员建议此功能? Gnome 论坛现在快死了,管理员已经 5 天没有激活我创建的帐户了!
最佳思路
厚颜无耻地使用 Fedora 论坛 here 中的解决方法。
您可以通过键入 Alt
+ F2
,输入 r
并点击 enter
来重置 gnome-shell 。这会重置/重新启动 GNOME Shell 并因此清除所有通知。
次佳思路
如果这仍然困扰您,我已经找到了使用 jupiter 的解决方法。诀窍是将瞬态提示添加到 jupter 发送的通知中。
对我来说(在 11.10 上通过 webupd8 ppa 安装了 jupiter),要修改的适当文件是 /usr/lib/jupiter/scripts/notify
对于我的设置,我必须做出的更改是将 --hint int:transient:1
添加到脚本中对 notify-send
的每次调用。因此,我的木星通知脚本从:
function notify {
if [ ! "$NO_NOTIFY" = "1" ]; then
ICON=$2
MESSAGE=$1
if [ "$DISTRIB_RELEASE" = "9.10" ]; then
DISPLAY=:0.0 /usr/bin/notify-send -i $ICON -t 1500 "$MESSAGE" 2>/dev/null
else
USER=$(who | sed -n '/ (:0[\.0]*)$\| :0 /{s/ .*//p;q}')
USERCNT=$(who | wc -l)
if [ ! "$(whoami)" = "$USER" ]; then
if [ ! "$USERCNT" -lt 1 ]; then
su $USER -l -c "DISPLAY=:0.0 /usr/bin/notify-send -i $ICON -t 700 \"$MESSAGE\" 2>/dev/null"
fi
else
if [ ! "$USERCNT" -lt 1 ]; then
/usr/bin/notify-send -i $ICON -t 700 "$MESSAGE" 2>/dev/null
fi
fi
fi
fi
}
到:
function notify {
if [ ! "$NO_NOTIFY" = "1" ]; then
ICON=$2
MESSAGE=$1
if [ "$DISTRIB_RELEASE" = "9.10" ]; then
DISPLAY=:0.0 /usr/bin/notify-send --hint int:transient:1 -i $ICON -t 1500 "$MESSAGE" 2>/dev/null
else
USER=$(who | sed -n '/ (:0[\.0]*)$\| :0 /{s/ .*//p;q}')
USERCNT=$(who | wc -l)
if [ ! "$(whoami)" = "$USER" ]; then
if [ ! "$USERCNT" -lt 1 ]; then
su $USER -l -c "DISPLAY=:0.0 /usr/bin/notify-send --hint int:transient:1 -i $ICON -t 700 \"$MESSAGE\" 2>/dev/null"
fi
else
if [ ! "$USERCNT" -lt 1 ]; then
/usr/bin/notify-send --hint int:transient:1 -i $ICON -t 700 "$MESSAGE" 2>/dev/null
fi
fi
fi
fi
}
这并不是您问题的直接答案,因为这不会清除所有通知,但至少可以防止木星通知堆积起来。
希望这可以帮助!
第三种思路
据我所知,目前还没有办法清除 gnome-shell 中的所有通知。你的底屏是这样的吗? (不是 Firefox,而是任何涌入下面板的应用程序)
我尝试在 wiki 上搜索所有设计文档,但仍然找不到任何设计或规范来清除所有通知。
您可以通过打开 bug report here 请求此功能
额外信息:统一清算
这是一个使用 App Indicator 的被动通知非常有意义的用例。您无需为堆积如山的通知而烦恼。需要您注意的通知显示在应用指示器中,可以清除