利用可能なアップデートに関するgnome-softwareの通知バブル(notify-osd)を無効にする

利用可能なアップデートに関するgnome-softwareの通知バブル(notify-osd)を無効にする

Unity で 16.04 を実行している場合、ログインするたびに、画面の右上隅に、利用可能な更新があることを示す迷惑な通知バブルが表示されます。

これは迷惑なだけでなく、アップグレードすべきではないパッケージをいくつか保留しているにもかかわらず、通知機能がそれを気にしていないため、事実ではない場合がよくあります。

利用可能なアップデートに関する通知を無効にするにはどうすればいいですか?

私は、notify-osd を完全に無効にしたくありません。また、aptとにかく手動で更新の自動チェックを行っているため、更新の自動チェックはすでに無効になっています。

答え1

によるとこの Fedoraforum.org の投稿GNOME Software によるアップデートの自動ダウンロードを無効にしてみることもできます。

gsettings set org.gnome.software download-updates false

そのキーの説明は次のとおりです。

有効にすると、GNOME ソフトウェアはバックグラウンドで更新を自動的にダウンロードし、準備ができたらユーザーにインストールするよう求めます。

テストできるアップデートは手元にありません。

答え2

dbus-monitor を使用して特定の通知のみを傍受 (kill) する方法

自動的に殺すことができます特定の通知のテキストに特定の識別文字列が含まれている場合は、その文字列がメッセージに表示されます。この場合、「update」で十分でしょう。

セットアップ方法

  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スクリプトに次の 1 行を追加します。

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)-software の最新バージョンのバグが修正されましたhttps://bugs.launchpad.net/ubuntu/+source/gnome-software/+bug/1592382

関連情報