Отключить баннер уведомлений gnome-software (notify-osd) для доступных обновлений

Запуск 16.04 с Unity, после каждого входа я вижу этот раздражающий пузырь уведомления в правом верхнем углу экрана, доступный для обновления.

Это не только раздражает, но часто это даже не правда, поскольку я сдерживаю некоторые пакеты, которые не должны обновляться, но уведомитель, похоже, не заботится.

Как отключить эти уведомления для доступных обновлений?

Я не хочу полностью отключать уведомление-osd. Кроме того, я уже отключил автоматическую проверку обновлений, поскольку я делаю это вручную, используя apt в любом случае.

1
задан 18 May 2016 в 01:24

3 ответа

Как перехватывать (убивать) только определенные уведомления, используя dbus-monitor

Вы можете автоматически убивать определенные сообщения, если у вас есть определенная строка идентификации, которая встречается в тексте уведомления. В этом случае возможно обновление.

Как настроить

Скопировать сценарий ниже в пустой файл:
#!/bin/bash

string=$1
match="update"

if [[ $string == *$match* ]]
  then
    pkill notify-osd
fi
Сохранить его как killnot.sh. Это уничтожит notify-osd, если в уведомлении появится определенная строка. Отредактируйте строку match="update", чтобы отобразить идентификационную строку в уведомлениях, которые вы хотели бы убить. Сделайте скрипт исполняемым. Скопируйте сценарий ниже в пустой файл:
#!/bin/bash

scriptpath=/home/jacob/Bureaublad/killnot.sh

dbus-monitor "interface='org.freedesktop.Notifications'" | \
grep --line-buffered "string" | \
grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v | \
grep --line-buffered '.*(?=string)|(?<=string).*' -oPi | \
grep --line-buffered -v '^\s*$' | \
xargs -I '{}' $scriptpath {}
Отредактируйте строку scriptpath=/home/jacob/Bureaublad/killnot.sh, чтобы отобразить реальный путь к сценарию 1 (killnot.sh) и сохраните его как monitor_notifs.sh. Сделайте скрипт исполняемым. Протестируйте настройку с помощью команды:
/path/to/monitor_notifs.sh
Чтобы протестировать, запустите в другом терминале команду:
notify-send <identifying_string>
Мезасаж не должен появляться. Если все работает нормально, добавьте его в свои приложения для запуска: Dash> Startup Applications> Add. Добавьте команду:
/path/to/monitor_notifs.sh

Примечания / объяснение

Сценарий monitor_notifs.sh использует dbus-monitor так же, как этот ответ. Запуск его в фоновом режиме означает конкретный для вашей системы и только триггеры уведомлений.

Эти уведомления, когда они происходят, передаются в качестве аргумента скрипту killnot.sh, что делает ничего, если строка идентификации не указана в тексте уведомления. В этом случае он будет убивать notify-osd.

С небольшим редактированием первого скрипта вы можете сделать установку убивать уведомления по нескольким ключевым словам сразу.

EDIT запускает команду только до появления пузырька

, если только уведомление появляется только после входа в систему, как вы упомянули в своем вопросе, вы можете «поднять» решение вверх чтобы убить себя после того, как он перехватил уведомление об обновлении:

Если вы назвали скрипты в настройке точно так, как указано, добавьте одну строку в killnot.sh sript:

pkill -P "$( pgrep -f run_intercept )"

Затем скрипт становится:

#!/bin/bash
string=$1

match="update"
if [[ $string == *$match* ]]
  then
    pkill notify-osd
    pkill -P "$( pgrep -f run_intercept )"
fi

. Главный скрипт run_intercept будет убит после того, как он выполнит свою работу, и у вас больше не работает фоновый скрипт.

Ближе к очистке вы не можете попасть в эту ситуацию imo.

2
ответ дан 23 May 2018 в 11:01
  • 1
    Вы знаете, что я всегда ценю ваши ответы, но я бы предпочел, чтобы это устранило причину, а не симптомы ... – Byte Commander 18 May 2016 в 00:38
  • 2
    @ByteCommander. Итак, я бы использовал грязный способ, если это невозможно. Выборочное отключение уведомлений в зависимости от источника в настоящее время невозможно, если только из самого приложения. Различие в этом случае чисто эстетически, а не практически. – Jacob Vlijm 18 May 2016 в 00:44
  • 3
    Иаков прав. Пока нет возможности отключить уведомления для каждого приложения. Вы можете контролировать только dbus. На самом деле уже есть обман, с которым он и я уже ответили. – Sergiy Kolodyazhnyy 18 May 2016 в 02:30
  • 4
    Я вставляю pkill update-notifier в мой автозапуск (Openbox session, Lubuntu 16.04). Но я проверяю обновления самостоятельно не реже двух раз в день. – DK Bose 18 May 2016 в 05:26
  • 5
    @ByteCommander увидит мое обновление. Я думаю, что так близко, как кажется. – Jacob Vlijm 18 May 2016 в 09:04

Я нашел файл /etc/xdg/autostart/update-notifier.desktop, который автозапускает службу update-notifier. Как вы можете или не можете знать, любой файл .desktop в каталоге /etc/xdg/autostart запустит любую команду, заданную параметром Exec=.

Все, что вам нужно сделать, чтобы отключить его, - это mv /etc/xdg/autostart/update-notifier.desktop /etc/xdg/autostart/update-notifier.desktop.bak и альт! Повторное включение - это обратное.

1
ответ дан 23 May 2018 в 11:01
  • 1
    Я переименовал файл, но на следующий день появился пузырь уведомления. – Byte Commander 21 May 2016 в 17:52

Исправлена ​​ошибка в последней версии gnome (ubuntu) -software https://bugs.launchpad.net/ubuntu/+source/gnome-software/+bug/1592382

1
ответ дан 23 May 2018 в 11:01

Другие вопросы по тегам:

Похожие вопросы: