Ich habe ein einfaches Python-Skript erstellt, das fast genauso funktioniert wie notify-send, aber Unterstützung bietet --replaces-id
.
notify-send.py
Web: https://github.com/phuhl/notify-send.py
Ein Python-Skript zum Senden von Desktop-Benachrichtigungen über die Shell.
Über
Libnotify ist Teil vieler Skripte in der Linux-Welt. Es nutzt viele der in der Desktop Notifications-Spezifikation angegebenen Funktionen und macht sie für Shell-Skripte zugänglich. Es ist jedoch nicht möglich, eine vorhandene Benachrichtigung durch die zu ersetzen replaces-id
. Dies ist ein bekannter Fehler seit 2008 und hat einen Patch seit 2012. Der Patch ist allerdings noch nicht upstream (2018).
Dieses Python-Skript verwendet notify2 Paket und stellt die Funktionalität der Shell zur Verfügung.
Unterschiede zwischen notify-send.py und notify-send
- In
notify-send.py -h
shows help ist nicht der Parameter für Hinweise. Für Hinweise verwenden--hint
.
- In
notify-send.py -r ID
und notify-send.py --replaces-id ID
existiert. Um eine Benachrichtigung zu ersetzen, rufen Sie notify-send.py
mit der ID an, die von der zu ersetzenden Benachrichtigung zurückgegeben wurde.
notify-send.py
Gibt die ID der neu erstellten Benachrichtigung zurück.
notify-send.py --replaces-process NAME
existiert. Jede Benachrichtigung, die mit demselben NAMEN erstellt wird, ersetzt jede Benachrichtigung davor mit demselben NAMEN. Wenn der Aufruf mit diesem Parameter notify-send.py
blockiert, ist es am besten, ihn mit einem Trailing aufzurufen &
.
Installation
Benötigt python3.
git clone https://github.com/phuhl/notify-send.py
cd notify-send.py
sudo pip install notify2
sudo python setup.py install
Verwendung
$ notify-send.py -h
usage: notify-send.py [-h] [-u LEVEL] [-t TIME] [-a APP_NAME]
[-i ICON[,ICON...]] [-c TYPE[,TYPE...]]
[--hint TYPE:NAME:VALUE] [-r ID]
[--replaces-process NAME]
SUMMERY [BODY]
positional arguments:
SUMMERY
BODY
optional arguments:
-h, --help show this help message and exit
-u LEVEL, --urgency LEVEL
Specifies the urgency level (low, normal, critical).
-t TIME, --expire-time TIME
Specifies the timeout in milliseconds at which to
expire the notification.
-a APP_NAME, --app-name APP_NAME
Specifies the app name for the icon
-i ICON[,ICON...], --icon ICON[,ICON...]
Specifies an icon filename or stock icon to display.
-c TYPE[,TYPE...], --category TYPE[,TYPE...]
Specifies the notification category.
--hint TYPE:NAME:VALUE
Specifies basic extra data to pass. Valid typesare
int, double, string and byte.
-r ID, --replaces-id ID
Specifies the id of the notification that should be
replaced.
--replaces-process NAME
Specifies the name of a process that should take care
of replacing notifications for this process.
notify-send [.py] als root-Benutzer
Um Benachrichtigungen anzuzeigen, auch wenn libnotify oder
notify-send.py
wird vom root-Benutzer verwendet, sind diese beiden Skripte hilfreich.
#!/bin/bash
username=<your username here>
if [ "$(id -u)" != "1000" ] ; then
sudo -u $username DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus notify-send.sh "$@"
else
notify-send.sh "$@"
fi
Mit notify-send.sh
so etwas:
#!/bin/bash
notify-send.py "$@" &
Siehe auch
Schauen Sie sich auch meinen Benachrichtigungs-Daemon an, der von Dunst inspiriert ist , aber einige Verbesserungen aufweist, einschließlich der Möglichkeit eines transparenten Hintergrunds und eines Benachrichtigungszentrums, in dem Benachrichtigungen gespeichert werden.