Ho creato un semplice script Python che funziona quasi allo stesso modo di notifica-invio ma ha il supporto per --replaces-id
.
notify-send.py
web: https://github.com/phuhl/notify-send.py
Uno script Python per l'invio di notifiche desktop dalla shell.
Di
Libnotify fa parte di molti script nel mondo Linux. Utilizza molte delle funzionalità specificate della specifica delle notifiche desktop e le rende accessibili agli script di shell. Essa non è tuttavia consente di sostituire una notifica esistente con il replaces-id
. Si tratta di un bug noto dal 2008 e ha una patch dal 2012. Tuttavia, la patch non è ancora a monte (2018).
Questo script python utilizza il pacchetto notify2 ed espone la funzionalità alla shell.
Differenze tra Notify-send.py e Notify-Send
- In
notify-send.py -h
shows help invece di essere il parametro per i suggerimenti. Per suggerimenti usare --hint
.
- In
notify-send.py -r ID
ed notify-send.py --replaces-id ID
esiste. Per sostituire una chiamata di notifica notify-send.py
con l'ID che è stato restituito dalla notifica da sostituire.
notify-send.py
restituisce l'ID della notifica appena creata.
notify-send.py --replaces-process NAME
esiste. Ogni notifica che viene creata con lo stesso NAME sostituirà ogni notifica precedente con lo stesso NAME. Se chiamato con questo parametro notify-send.py
potrebbe bloccarsi, meglio essere chiamato con un trailing &
.
Installazione
Richiede python3.
git clone https://github.com/phuhl/notify-send.py
cd notify-send.py
sudo pip install notify2
sudo python setup.py install
uso
$ 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.
notification-send [.py] come utente root
Per visualizzare le notifiche, anche se libnotify o
notify-send.py
viene utilizzato dall'utente root questi due script sono utili.
#!/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
In notify-send.sh
questo modo:
#!/bin/bash
notify-send.py "$@" &
Guarda anche
Dai anche un'occhiata al mio demone delle notifiche ispirato a Dunst , ma con diversi miglioramenti, tra cui la possibilità di uno sfondo trasparente e un centro di notifica che memorizza le notifiche.