停用 gnome-software 的通知氣泡 (notify-osd) 以取得可用更新

停用 gnome-software 的通知氣泡 (notify-osd) 以取得可用更新

使用 Unity 運行 16.04,每次登入後我都會在螢幕右上角看到這個煩人的通知氣泡,表明有可用更新。

這不僅令人煩惱,而且通常甚至不是真的,因為我保留了一些不應該升級的軟體包,但通知程式似乎並不關心。

如何停用這些可用更新的通知?

我不想完全禁用notify-osd。另外,我已經禁用了自動檢查更新,因為apt無論如何我都會手動執行此操作。

答案1

根據這篇 Fedoraforum.org 帖子,您可以嘗試停用 GNOME 軟體的自動下載更新:

gsettings set org.gnome.software download-updates false

該鍵的描述如下:

如果啟用,GNOME 軟體會在背景自動下載更新,並在準備好時提示使用者安裝它們。

我手邊沒有任何更新可供測試。

答案2

如何使用 dbus-monitor 僅攔截(殺死)特定通知

可以自動殺掉具體的如果您有特定的識別字串(出現在通知文字中),則會收到訊息。在這種情況下,「更新」可能就可以了。

如何設定

  1. 將以下腳本複製到空文件中:

    #!/bin/bash
    
    string=$1
    match="update"
    
    if [[ $string == *$match* ]]
      then
        pkill notify-osd
    fi
    

    將其另存為killnot.sh.notify-osd如果通知中出現特定字串,這將終止。編輯該行match="update"以反映您要刪除的通知中的識別字串。使腳本可執行

  2. 將以下腳本複製到空文件中:

    #!/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.使腳本可執行

  3. 透過以下命令測試運行設定:

    /path/to/monitor_notifs.sh
    

    若要進行測試,請在另一個終端機中執行命令:

    notify-send <identifying_string>
    

    該訊息不應出現。

  4. 如果一切正常,請將其新增至您的啟動應用程式:Dash > 啟動應用程式 > 新增。新增指令:

    /path/to/monitor_notifs.sh
    

註釋/解釋

該腳本的monitor_notifs.sh使用dbus-monitor方式與這個答案。在背景運行意味著沒有什麼到您的系統並且僅觸發通知。

這些通知在發生時會作為參數傳遞給腳本killnot.sh,該腳本不執行任何操作,除非識別字串位於通知文字中。那樣的話就會殺人notify-osd

透過對第一個腳本進行一些編輯,您可以一次對多個關鍵字進行設定終止通知。


編輯僅運行命令直到出現氣泡

如果該通知僅在登入後出現,正如您在問題中提到的,您可以「智慧」解決方案以在攔截更新通知後自行終止:

如果您在設定中完全按照指示命名腳本,請在腳本中新增一行killnot.sh

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在完成其工作後將被終止,並且您不再執行後台腳本。

在我看來,你無法接近清潔。

答案3

我找到了該文件/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中提琴!重新啟用則相反。

答案4

修正了最新版本的 gnome(ubuntu) 軟體中的錯誤https://bugs.launchpad.net/ubuntu/+source/gnome-software/+bug/1592382

相關內容