web-dev-qa-db-ja.com

「マウスのバッテリー残量が少ない」スパム通知を無効にする

過去数週間、ワイヤレスマウスの電池残量が少ないことを何度も通知されました。スリープモードから復帰し、Bluetoothを介して再接続するたびに通知を受け取ります。何百もの通知を受け取りました。私はそれらを望んでおらず、必要もありません。はい、バッテリーは少なくなっていますが、0%(報告されているとおり)で少なくとも1週間は続きます。通知にはタイマーがなく、閉じるまで表示され続けます。

この拷問を無効にするにはどうすればよいですか?

enter image description here

私は不機嫌そうな老人のように聞こえるかもしれないので、回避策としてもう1か月は良いバッテリーを交換しません。 Ubuntu 17.10をGNOME Shellで実行しています。何がこれを引き起こしているのか見当がつかない。ポインタと提案は大歓迎です!

UPDATE:最初の通知からさらに10日間ほどマウスが実行されたことが判明しました。 OSにより、すぐに動作しなくなることを常に思い出させます。良い電池を無駄にすることは、あまり良い設計ではありません。人々はそれを気にし、通知をオフにするオプションを持っている必要があります。

2018-10-22更新:少し前に質問しました。マークされた正解はもう当てはまらないかもしれません。 gnome-settings-daemonのバグのようです。この問題に関する最新情報については、レポートをご覧ください。 https://bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/1798166

32
domo

OK、同じ問題にぶつかりました。理由は似ています。 Logitech M570は、非常に低電圧のアルカリ電池で月間持続するため、「死んだ」バッテリーで給電されます。だから私は他のものにバッテリーを使用し、M570のために死んだものを保管します。

私が見つけた最良の答えは、パワープラグインのクリティカルレベルの警告を下げることでした。これにより、しつこいときにカスタマイズできます。

GUIバージョンのコマンドラインにはdconfまたはdconf-editorが必要です(GUIの場合はSudo apt-get install dconf-toolsを実行する必要があります)。

ただし、一般的な設定はバッテリー用であるため、ラップトップまたはUPSを使用している場合は、それらの警告レベルを変更することになりますが、これは理想的ではない場合があります。

buntu 17.1 (Artful Aardvark)の場合は、org→gnome→settings-daemon→plugins→powerに移動します。 「percentage-low」設定を必要なものに変更します。 10%から4%に変更しました。

あなたがラップトップを持っている場合、それは完全な答えではありませんが、デスクトップコンピュータにとっては問題ありませんし、埋め立て地をバッテリーで埋めたり、ナグするよりはましです。

11
Jetblackstar

メッセージを開くとすぐにメッセージを閉じるスクリプトを使用できます(0.5秒の遅延で、メッセージウィンドウが開くのに時間がかかります)。これは、ウィンドウスタックの最後の通知ウィンドウを閉じるため、完全ではありません。したがって、「マウスのバッテリーが少なくなっています」というメッセージの概要が表示されている通知とほぼ同時に表示される場合、誤った通知を閉じる可能性がわずかにあります。

依存関係:

Sudo apt install python-dbus wmctrl -y

これはxfce用です。 gnomeで使用する場合は、微調整する必要があります。 xfceの場合、nextコマンドは最後の通知ウィンドウを閉じます。

wmctrl -i -c $(wmctrl -lx | awk '/xfce4-notifyd\.Xfce4-notifyd/{print $1}' | tail -n 1)

awkは、ウィンドウクラスxfce4-notifydでウィンドウをフィルタリングします。

Mate-desktopウィンドウクラスがmate-notification-daemonの場合、Gnomeについてはわかりません。

スクリプトでDEの行を変更します。

次のスクリプトを保存し、実行可能にし、起動時に実行するように設定します。

#!/usr/bin/env python
import glib
import dbus
import os
import time
from dbus.mainloop.glib import DBusGMainLoop

def close_notification(bus, message):
  keys = ["app_name", "replaces_id", "app_icon", "summary",
          "body", "actions", "hints", "expire_timeout"]
  args = message.get_args_list()
  if len(args) == 8:
    notification = dict([(keys[i], args[i]) for i in range(8)])
    if notification["summary"] == "Mouse battery low":
       time.sleep(.5)
       # Adapt next command for your DE
       os.system("wmctrl -i -c $(wmctrl -lx | awk '/xfce4-notifyd\.Xfce4-notifyd/{print $1}' | tail -n 1)")

loop = DBusGMainLoop(set_as_default=True)
session_bus = dbus.SessionBus()
session_bus.add_match_string_non_blocking("type='method_call',interface='org.freedesktop.Notifications',member='Notify',eavesdrop=true")
session_bus.add_message_filter(close_notification)
glib.MainLoop().run()
1
user903316

Bluetoothマウスを使用したことはありませんが、アイコンをクリックすると、プラグインのオプションが表示されます。その中に電源管理プラグインがあります。おそらくそれを無効にすることが役立つかもしれません。

0
Olga