Stworzyłem prosty skrypt Pythona, który działa prawie tak samo jak powiadomienie-wysyłanie, ale obsługuje --replaces-id
.
powiadomienie-wyślij.py
www: https://github.com/phuhl/notify-send.py
Skrypt Pythona do wysyłania powiadomień na pulpicie z powłoki.
O
Libnotify jest częścią wielu skryptów w świecie Linuksa. Wykorzystuje wiele określonych funkcji specyfikacji powiadomień na pulpicie i udostępnia je skryptom powłoki. To nie nie jednak pozwolić, aby zastąpić istniejący powiadomienia z replaces-id
. Jest to znany bug od 2008 roku i ma łatę od 2012. Łatka nie jest jeszcze choć Upstream (2018).
Ten skrypt Pythona wykorzystuje pakiet powiadomień2 i udostępnia funkcjonalność powłoce.
Różnice między powiadomieniem-wysłaniem.py i powiadomieniem-wysłaniem
- W
notify-send.py -h
programach pomoc zamiast być parametrem podpowiedzi. Użyj podpowiedzi --hint
.
- W
notify-send.py -r ID
i notify-send.py --replaces-id ID
istnieje. Aby zastąpić powiadomienie połączeniem notify-send.py
z identyfikatorem zwróconym przez powiadomienie, które ma zostać zastąpione.
notify-send.py
zwraca identyfikator nowo utworzonego powiadomienia.
notify-send.py --replaces-process NAME
istnieje. Każde powiadomienie, które zostanie utworzone przy użyciu tego samego NAZWY, zastąpi każde wcześniejsze powiadomienie tym samym NAZWĄ. Jeśli zostanie wywołany za pomocą tego parametru, notify-send.py
może zostać zablokowany, najlepiej wywołać go za pomocą znaku końca &
.
Instalacja
Wymaga python3.
git clone https://github.com/phuhl/notify-send.py
cd notify-send.py
sudo pip install notify2
sudo python setup.py install
Stosowanie
$ 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.
powiadom-wyślij [.py] jako użytkownik root
Aby wyświetlać powiadomienia, nawet jeśli libnotify lub
notify-send.py
jest używany przez użytkownika root, te dwa skrypty są pomocne.
#!/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
W notify-send.sh
ten sposób:
#!/bin/bash
notify-send.py "$@" &
Zobacz też
Spójrz także na mojego demona powiadomień zainspirowanego przez Dunsta , ale z kilkoma ulepszeniami, w tym możliwością przezroczystego tła i centrum powiadomień, które przechowuje powiadomienia.