Creé una secuencia de comandos simple de Python que funciona casi igual que la notificación de envío, pero tiene soporte para --replaces-id
.
notify-send.py
web: https://github.com/phuhl/notify-send.py
Un script de Python para enviar notificaciones de escritorio desde el shell.
Acerca de
Libnotify es parte de muchos scripts en el mundo Linux. Utiliza muchas de las características especificadas de la Especificación de notificaciones de escritorio y las hace accesibles a los scripts de shell. Sin embargo, no permite reemplazar una notificación existente con el replaces-id
. Este es un error conocido desde 2008 y tiene un parche desde 2012. Sin embargo, el parche aún no está corriente arriba (2018).
Este script de Python utiliza el paquete notify2 y expone la funcionalidad al shell.
Diferencias entre notify-send.py y notify-send
- En
notify-send.py -h
muestra ayuda en lugar de ser el parámetro para sugerencias. Para usar pistas--hint
.
- En
notify-send.py -r ID
y notify-send.py --replaces-id ID
existe. Para reemplazar una llamada de notificaciónnotify-send.py
con la ID que fue devuelta por la notificación a ser reemplazada.
notify-send.py
devuelve la ID de la notificación recién creada.
notify-send.py --replaces-process NAME
existe Cada notificación que se crea con el mismo NOMBRE reemplazará cada notificación anterior con el mismo NOMBRE. Si se llama con este parámetro notify-send.py
podría bloquearse, es mejor llamarlo con un final &
.
Instalación
Requiere 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.
notifique-envíe [.py] como usuario root
Para mostrar notificaciones, incluso si libnotify o
notify-send.py
se usa desde el usuario root, estos dos scripts son útiles.
#!/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
Con notify-send.sh
así:
#!/bin/bash
notify-send.py "$@" &
Ver también
También eche un vistazo a mi demonio de notificaciones inspirado en Dunst , pero con varias mejoras, incluida la posibilidad de un fondo transparente y un centro de notificaciones que almacene las notificaciones.