staging.inyokaproject.org

Benachrichtigung über Ladezustand der Maus

Status: Ungelöst | Ubuntu-Version: Ubuntu 14.04 (Trusty Tahr)
Antworten |

uu4u

Anmeldungsdatum:
18. März 2012

Beiträge: Zähle...

Hallo,

ich habe das Problem, dass der Ladezustand meiner kabellosen Maus (Logitech Performance MX über unifying verbunden) falsch übertragen wird und ich daher alle 2-5 Minuten eine Benachrichtigung (NotifyOSD) bekomme, dass meine Maus fast leer sei. Ich habe keine Möglichkeit finden können, diese Art von Benachrichtigung auszuschalten, oder, falls das nicht geht, von mir aus alle Benachrichtigungen auszuschalten.So wie es momentan ist, nervt es ziemlich. Kann mir da jemand weiterhelfen?

Beste Grüße, Henrik

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 52312

Schau mal hier.

uu4u

(Themenstarter)

Anmeldungsdatum:
18. März 2012

Beiträge: 7

Vielen Dank, damit konnte ich notifyOSD schonmal komplett deaktivieren, damit ist mir schonmal geholfen. Gibt es aber vielleicht eine Möglichkeit, den Dienst zu deaktivieren, der den Ladezustand der Maus kontrolliert? Dann könnte ich notifyOSD weiter nutzen.

Vej Team-Icon

Moderator, Supporter
Avatar von Vej

Anmeldungsdatum:
7. März 2013

Beiträge: 3380

Hallo uu4u,

um den Dienst zu finden, der für die Meldung verantwortlich ist, solltest du mal dbus-monitor starten.

Ich stelle mir das in etwa so vor wie in diesem Thema (das dankenswerter Weise in dem von tomtomtom verlinkten Thema verlinkt war 😉):

dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "member=Notify\|string" 

Dann wartest du, bis dein Mausakku sich meldet und analysierst die Ausgabe. Wenn du Glück hast, enthält die erste Zeile, die mit "string" anfängt den Namen des Services. Ansonsten kann man mit der Programmiersprache deiner Wahl (falls nicht zu exotisch), ein kleines Skript schreiben, dass aus dem String die PID generiert, die eindeutig einem Prozess zugeordnet werden kann.

Ich drücke dir die Daumen, dass das nicht "unityshell" ist (den willst du lieber nicht beenden).

Viel Erfolg

Vej

PS.: Du könntest natürlich auch einfach die Meldung nach dem Text filtern und dann die "ugly"-Methode aus dem von tomtomtom verlinkten Thema verwenden um immer dann notify-osd zu töten, wenn diese Meldung kommt. Vorausgesetzt es ist immer der gleiche Text und die genannte Methode funktioniert überhaupt.

uu4u

(Themenstarter)

Anmeldungsdatum:
18. März 2012

Beiträge: 7

Hallo Vej,

danke, das habe ich direkt in die Tat umgesetzt und das kam für die Meldung dabei raus:

1
2
3
4
5
6
7
method call sender=:1.11 -> dest=:1.40 serial=218 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify
   string "Energie"
   string "battery-low-symbolic"
   string "Mausakku ist fast leer"
   string "Kabellose Maus hat nur noch wenig Energie (20%)"
         string "urgency"
         string "transient"

Ich konnte mit pgrep und pidof keine Prozesse mit dem Namen "energie" oder "battery-low-symbolic" finden. Wie kann ich sonst die PID herausfinden und den Prozess dauerhaft abstellen?

Danke schonmal,

Henrik

Vej Team-Icon

Moderator, Supporter
Avatar von Vej

Anmeldungsdatum:
7. März 2013

Beiträge: 3380

Hallo Henrik,

versuch es mal mit dem folgenden Python-Skript:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#!/usr/bin/python3

import dbus
import sys

#Benutzer nach der Sender-ID fragen
caller = input("Bitte Sender eingeben: ")

#Mit dem Bus erbinden
bus=dbus.SystemBus().get_object('org.freedesktop.DBus', '/org/freedesktop/DBus')

#Interface zum Bus erzeugen
interface=dbus.Interface(bus, 'org.freedesktop.DBus')

#PID auflösen
pid=interface.GetConnectionUnixProcessID(caller)

print("PID:",pid)

Nach dem Starten des Programmes, wirst du nach dem Sender gefragt, den du in der Form :X.XX angeben kannst.

Selbstverständlich musst du vorher frisch mit dbus-monitor nachgeschaut haben, damit der gleiche Bus verwendet wird.

Viel Erfolg

Vej

Antworten |