当前位置: 首页>>技术教程>>正文


如何清除所有 gnome shell 通知?

, , ,

问题描述

我使用 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 的被动通知非常有意义的用例。您无需为堆积如山的通知而烦恼。需要您注意的通知显示在应用指示器中,可以清除

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13381.html,未经允许,请勿转载。