106 votes

Désactiver la notification de spam "Batterie de la souris faible".

Au cours des dernières semaines, j'ai été informé à de nombreuses reprises que la batterie de ma souris sans fil était faible. Chaque fois qu'elle sort du mode veille et se reconnecte via Bluetooth, je reçois une notification. J'ai reçu des centaines de notifications. Je n'en veux pas et je n'en ai pas besoin. Oui, la batterie est faible, mais à 0 % (comme indiqué), elle continuera à fonctionner pendant encore une semaine au moins. La notification n'a pas de minuterie et reste visible jusqu'à ce que je la ferme.

Comment désactiver cette torture ?

screenshot

Conscient que je risque de passer pour un vieux grincheux, je ne vais pas remplacer mes piles qui sont encore bonnes pour un mois en guise de solution de rechange. J'utilise Ubuntu 17.10 avec GNOME Shell. Je n'ai aucune idée de la cause de ce problème. Les pointeurs et les suggestions seront grandement appréciés !

UPDATE : Il s'avère que la souris a fonctionné pendant une dizaine de jours supplémentaires après la notification initiale. Le système d'exploitation me rappelant constamment qu'elle va bientôt cesser de fonctionner. Le gaspillage de piles fines n'est pas une très bonne conception. Les gens devraient se soucier de cela et avoir une option pour désactiver les notifications.

MISE À JOUR 2018-10-22 : J'ai posé la question il y a quelque temps. La réponse correcte marquée ne s'applique peut-être plus. Il semble qu'il s'agisse d'un bogue dans le gnome-settings-daemon . Voir le rapport pour les mises à jour concernant cette question .

43voto

roshansourav Points 543

Pour Ubuntu 20 : paramètres -> notifications -> alimentation et ensuite désactiver le bouton de notification .

28voto

Jetblackstar Points 396

OK, j'ai rencontré le même problème. Les raisons sont similaires ; mon Logitech M570 est alimenté par des piles "mortes" car il dure des MOIS avec une alcaline à très faible voltage. J'utilise donc les piles dans d'autres choses et je garde les piles mortes pour mon M570.

La meilleure solution que j'ai trouvée est de diminuer le niveau d'alerte critique de Power Plugins. De cette façon, vous pouvez personnaliser le moment où il vous avertit.

Vous avez besoin de dconf pour la ligne de commande ou de dconf-editor pour la version GUI (pour la version GUI, vous devez effectuer les opérations suivantes sudo apt-get install dconf-tools mais ce paquet peut ne pas être disponible pour les versions plus récentes. dconf-editor et ses dépendances).

Le réglage est cependant générique pour les batteries, donc si vous êtes sur un ordinateur portable ou un onduleur, vous modifierez les niveaux d'alerte pour ceux-ci, ce qui peut ne pas être idéal.

Pour Ubuntu 17.10 (Artful Aardvark) allez dans org gnome settings-daemon plugins power. Modifiez le paramètre "percentage-low" en fonction de ce que vous voulez. Je suis passé de 10% à 4%.

Ce n'est pas une réponse parfaite si vous avez un ordinateur portable, mais c'est parfait pour un ordinateur de bureau et c'est mieux que de remplir les décharges de piles ou d'être harcelé.

3voto

Vous pourriez utiliser un script qui ferme le message dès qu'il s'ouvre (avec le délai de 0,5 seconde, il faut du temps pour que la fenêtre de message s'ouvre). Ce n'est pas parfait, car il ferme la dernière fenêtre de notification dans la pile de fenêtres. Il y a donc une petite chance de fermer la mauvaise notification si elle apparaît presque en même temps que celle avec le résumé du message "Batterie de la souris faible".

Dépendances :

sudo apt install python-dbus wmctrl -y

Celui-ci est pour xfce. Vous devrez la modifier pour gnome, si c'est ce que vous utilisez. Pour xfce, la commande suivante ferme la dernière fenêtre de notification :

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

awk filtre la ou les fenêtres avec la classe de fenêtre xfce4-notifyd .

Pour la classe de fenêtre mate-desktop est mate-notification-daemon Je ne suis pas sûr pour Gnome.

Changez cette ligne pour votre DE dans le script.

Enregistrez le script suivant, rendez-le exécutable et configurez-le pour qu'il soit exécuté au démarrage.

#!/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()

3voto

J. Doe Points 31

Ubuntu 18.04 sur un ordinateur de bureau ici, donc je n'ai pas de problèmes que l'ordinateur portable pourrait potentiellement avoir avec cette solution.

  1. Vous pouvez tester si ce que vous avez fait fonctionne en redémarrant le service upower :

    sudo systemctl restart upower
  2. J'ai réussi à le résoudre en modifiant le fichier de configuration de upower :

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

J'ai simplement commenté la configuration entière, laissant vide <busconfig></busconfig> étiquette.

1voto

Burak Points 111

Copie de la solution de un article de blog . A utiliser à vos risques et périls.

disable_mouse_notification.sh

#!/bin/bash
set -e

# https://wrgms.com/disable-mouse-battery-low-spam-notification/

# Check which version you're using
upower --version  
UPOWER_ORIG_VER=`upower --version`

# Check Debian / Ubuntu vs. Arch Linux / Manjaro
OS=`awk -F= '/^ID=/{print $2}' /etc/os-release`  
OS_VER=`awk -F= '/^VERSION_ID=/{print $2}' /etc/os-release | cut -d "\"" -f 2`

if [[ "$OS" == "manjaro" ]]  
then  
    echo "Manjaro detected"
    sudo pacman -S base-devel gtk-doc gobject-introspection git
    PATH_UPOWERD="/usr/lib"
    PATH_UPOWER="/usr/bin"
elif [[ "$OS" == "ubuntu" ]]  
then  
    sudo apt install git gtk-doc-tools gobject-introspection libgudev-1.0-dev libusb-1.0-0-dev autoconf libtool autopoint
    if [[ "$OS_VER" == "20.10" ]]
    then
        echo "Ubuntu version 20.10 (Groovy Gorilla) detected"
        PATH_UPOWERD="/usr/libexec"
        PATH_UPOWER="/usr/bin"
    else
        echo "Ubuntu version <= 20.04 detected"
        PATH_UPOWERD="/usr/lib/upower"
        PATH_UPOWER="/usr/bin"
    fi
else  
    echo "Unknown system; this script was only tested on ubuntu and manjaro."
    exit 1
fi

# Download and patch upowerd
#
git clone https://gitlab.freedesktop.org/upower/upower  
cd upower/src  
wget https://gist.githubusercontent.com/guiambros/f2bf07f1cc085f8f0b0a9e04c0a767b4/raw/ef90dfcfa2489bab577bd984a6082abacdf8b0b1/up-device.patch  
patch < up-device.patch  
cd ..  
./autogen.sh
./configure
make

# Install upowerd
#
pushd .  
cd src/.libs  
strip upowerd  
sudo chown root.root upowerd  
sudo mv upowerd ${PATH_UPOWERD}/upowerd-silent  
cd ${PATH_UPOWERD}  
sudo mv upowerd upowerd-original  
sudo ln -s upowerd-silent upowerd  
popd

# Install upower
#
pushd .  
cd tools/.libs  
strip upower  
sudo chown root.root upower  
sudo mv upower ${PATH_UPOWER}/upower-silent  
cd ${PATH_UPOWER}  
sudo mv upower upower-original  
sudo ln -s upower-silent upower  
popd

# Restart upowerd
#
sudo systemctl restart upower

# Compare versions before/after (they will likely be different, but it depends on what your distro packages by default)
echo "upower version BEFORE the update:"  
echo "${UPOWER_ORIG_VER}"  
echo "-------------------------------------"  
echo "upower version AFTER the update:"  
upower --version

Résultat :

$ upower --version

upower : erreur de recherche de symbole : upower : undefined symbol : up_client_get_devices2

Au moins, la notification disparaît immédiatement.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X