52

Countless times over the past few weeks I have been notified about the low battery in my wireless mouse. Every time it wakes up from sleeping mode and reconnects over Bluetooth I get a notification. I have gotten hundreds of notifications. I do not want them and I do not need them. Yes, battery is low, but at 0% (as reported) it will go on for another week at least. The notification has no timer and will stay visible until I close it.

How do I disable this torture?

screenshot

Realizing I might sound like a grumpy old man I am not going to replace my batteries that are good for another month as a workaround. I am running Ubuntu 17.10 with GNOME Shell. I have no clue what is causing this. Pointers and suggestions will be greatly appreciated!

UPDATE: It turns out the mouse ran for another ten days or so after the initial notification. With the OS constantly reminding me that it will soon stop working. Wasting fine batteries is not a very good design. People should care about that and have an option to turn the notifications off.

UPDATE 2018-10-22: I asked some time ago. The marked correct answer might not apply anymore. It appears to be a bug in the gnome-settings-daemon. See the report for updates revolving this issue.

  • 2
    @heynnema You did not read the whole post did you? – domo Dec 14 '17 at 6:14
  • 3
    @heynnema Well I've been closing these notifications for about, oh, 6 months now... and still going! Entirely pointless, and not something that happens in Windows. The bottom line is these low-powered mice & keyboards have much lower power thresholds than laptop batteries, and so, do not need these excessive warnings for close to half a year of usage... nor do we need condescending comments from people for whom this problem doesn't happen to affect. Actually it's a confirmed bug; bugzilla.kernel.org/show_bug.cgi?id=201445 – Domarius Oct 21 '18 at 22:21
  • 2
    @Domarius Thanks for the update. I edited the question and added a link to the bug report (although, I linked the launchpad report instead). – domo Oct 22 '18 at 13:12
  • 1
    @heynnema As of time of writing, the batteries have finally died. So 2 months after I made my comment, previous to which I had been seeing the notification for several months already! If the "OS is doing what it's designed to do" then this is evidence enough that it is "designed" badly. For the record, when I boot into Windows, it fades a "battery low warning" for a second and then fades away quickly. Much less intrusive. – Domarius Nov 20 '18 at 22:45
  • 2
    Thanks for this. My Logitech k400+ is at 10%, which I expect to last for a month or two. Constant reminders were a little excessive. :) – Jo-Erlend Schinstad May 21 '19 at 21:18
17

OK, I hit the same issue. Reasons are similar; my Logitech M570 is fed on "dead" batteries as it lasts MONTHS on a very low voltage alkaline. So I use batteries in other things and keep the dead ones for my M570.

The best answer I've found was to lower the Power Plugins critical level warning. This way you can customise when it nags.

You need dconf for command line or dconf-editor for the GUI version (for GUI you'll need to do sudo apt-get install dconf-tools, although that package may not be available for newer versions, so just get dconf-editor and its dependencies).

Setting is generically for batteries though, so if you're on a laptop or a UPS then you will be altering the warning levels for those, which may be non ideal.

For Ubuntu 17.10 (Artful Aardvark) go to org → gnome → settings-daemon → plugins → power. Alter the "percentage-low" setting to what you want. I changed from 10% to 4%.

It is not a perfect answer if you have a laptop, but it is fine for a desktop computer and better than filling landfill with batteries or being nagged.

| improve this answer | |
  • Thanks, that worked. The popup started to bug me again. org.gnome.settings-daemon.plugins.power contained a lot of goodness. – domo Mar 2 '18 at 8:22
  • 12
    This does not work in 18.04. Darn. Notification appears regardless of that setting. – Ohto Nordberg Sep 2 '18 at 14:11
  • 1
    Same here, also there is no "percentage-low" entry. – Matthias Urlichs Oct 7 '18 at 10:11
  • This doesnt work in Mint 19 either :( – Keltari Dec 1 '18 at 17:29
  • 3
    There was no percentage-low key on my Gnome 3.30 either and after some time spent Googling this problem it seems there is no other solution out there. Since the notifications were getting really annoying, I just disabled UPower by running systemctl stop upower and systemctl mask upower. Hopefully, there will be no negative consequences of this action. – livthomas Jan 4 '19 at 18:58
3

for Ubuntu 20: settings -> notifications -> power and then toggle off the notifiction-button .

| improve this answer | |
  • That's exactly what I did. The problem is that it disabled ALL the power notifications, not only the ones related to the mouse. So if, for example, my laptop's battery is about to die, I won't get any notification. That's bad. – vvaltchev Jun 1 at 13:43
  • Yeah that's true, I JUST WANTED to switch that mouse notification OFF anyhow. – roshan sourav Jun 3 at 13:20
  • This is what I need. Since laptops can show the battery life in the top-right corner, I think it does not really matter. – DrizzleX Jun 19 at 2:19
1

You could use a script that closes the message as soon as it opens (with the delay of 0.5 seconds, it takes time for the message window to open). This is not perfect, because it closes the last notification window in the window stack. Therefore there is a small chance to close the wrong notification if it appears at almost the same time as the one with the message summary "Mouse battery low".

Dependancies:

sudo apt install python-dbus wmctrl -y

This one is for xfce. You'll have to tweak it for gnome, if that is what you use. For xfce next command closes the last notification window:

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

awk filters the window(s) with the window class xfce4-notifyd.

For mate-desktop window class is mate-notification-daemon, I'm not sure for Gnome.

Change that line for your DE in the script.

Save next script, make it executable and set it to run on startup.

#!/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()
| improve this answer | |
  • Unfortunately, with Ubuntu 19.10 (default desktop environment), the notification is not a window listed by vmctrl -lx and so this nice script cannot work. Is there any other way to close that notification programmatically? – vvaltchev Apr 4 at 19:38
1

Ubuntu 18.04 on a desktop computer here, so I'm not having issues that laptop could potentially have with that solution.

  1. You can test whether what you made is working by restarting upower service:

    sudo systemctl restart upower
    
  2. I managed to solve it by altering upower's config file:

    sudo nano /etc/dbus-1/system.d/org.freedesktop.UPower.conf
    

I simply commented out whole config, leaving empty <busconfig></busconfig> tag.

| improve this answer | |
  • I have Ubuntu Mate 18.04, and this is the only solution I've found. Thank you very much!! – Albert Català Apr 20 at 19:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.