Unityで16.04を実行し、ログインするたびに、画面の右上隅に更新が利用可能であるというこの厄介な通知バブルが表示されます。
これは迷惑なだけでなく、アップグレードされるべきではないパッケージを控えているため、多くの場合真実ではありませんが、通知者は気にしないようです。
利用可能なアップデートの通知を無効にするにはどうすればよいですか?
Notify-osdを完全に無効にしたくありません。また、とにかくapt
を使用して手動で更新を行うため、更新の自動チェックを既に無効にしています。
このFedoraforum.orgの投稿 によると、GNOME Softwareのアップデートの自動ダウンロードを無効にすることができます。
gsettings set org.gnome.software download-updates false
そのキーの説明は次のとおりです。
有効にすると、GNOMEソフトウェアは自動的にバックグラウンドで更新をダウンロードし、準備ができたら更新をインストールするようユーザーに促します。
テストするアップデートはありません。
通知のテキストに出現する特定の識別文字列がある場合は、specificメッセージを自動的に殺すことができます。この場合、「更新」がおそらく実行されます。
以下のスクリプトを空のファイルにコピーします。
#!/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
を使用します。バックグラウンドで実行すると、システムに対してnothingを意味し、通知のみをトリガーします。
これらの通知は、発生すると、引数としてスクリプトkillnot.sh
に渡されます。スクリプトは何も行いません。unless識別テキストは通知のテキストに含まれます。その場合、notify-osd
を強制終了します。
最初のスクリプトを少し編集するだけで、セットアップで複数のキーワードの通知を一度に強制終了できます。
Ifログイン後にのみ通知が表示されます。質問で述べたように、更新通知をインターセプトした後、ソリューションを「スマート化」して自分自身を殺すことができます。
セットアップで指定されたとおりにスクリプトに名前を付けた場合は、killnot.sh
sriptに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
は、ジョブを実行した後に強制終了され、バックグラウンドスクリプトが実行されなくなります。
きれいに近いこの状況では得られません。
Gnome(ubuntu)-softwareの最終バージョンで修正されたバグ https://bugs.launchpad.net/ubuntu/+source/gnome-software/+bug/1592382
/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
とviolaを実行するだけです!再有効化は逆です。