Запуск 16.04 с Unity, после каждого входа я вижу этот раздражающий пузырь уведомления в правом верхнем углу экрана, доступный для обновления.
Это не только раздражает, но часто это даже не правда, поскольку я сдерживаю некоторые пакеты, которые не должны обновляться, но уведомитель, похоже, не заботится.
Как отключить эти уведомления для доступных обновлений?
Я не хочу полностью отключать уведомление-osd. Кроме того, я уже отключил автоматическую проверку обновлений, поскольку я делаю это вручную, используя apt в любом случае.
Вы можете автоматически убивать определенные сообщения, если у вас есть определенная строка идентификации, которая встречается в тексте уведомления. В этом случае возможно обновление.
#!/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.
С небольшим редактированием первого скрипта вы можете сделать установку убивать уведомления по нескольким ключевым словам сразу.
, если только уведомление появляется только после входа в систему, как вы упомянули в своем вопросе, вы можете «поднять» решение вверх чтобы убить себя после того, как он перехватил уведомление об обновлении:
Если вы назвали скрипты в настройке точно так, как указано, добавьте одну строку в 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.
Я нашел файл /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 и альт! Повторное включение - это обратное.
Исправлена ошибка в последней версии gnome (ubuntu) -software https://bugs.launchpad.net/ubuntu/+source/gnome-software/+bug/1592382