Eu criei um script python simples que funciona quase da mesma forma que o envio de notificação, mas tem suporte para --replaces-id
.
notify-send.py
web: https://github.com/phuhl/notify-send.py
Um script python para enviar notificações da área de trabalho a partir do shell.
Sobre
O Libnotify faz parte de muitos scripts no mundo Linux. Ele utiliza muitos dos recursos especificados da Especificação de notificações da área de trabalho e os torna acessíveis para shell-scripts. No entanto, não permite substituir uma notificação existente pelo replaces-id
. Este é um bug conhecido desde 2008 e possui um patch desde 2012. O patch ainda não está disponível no momento (2018).
Esse script python utiliza o pacote notify2 e expõe a funcionalidade ao shell.
Diferenças entre notify-send.py e notify-send
- Em
notify-send.py -h
shows ajuda em vez de ser o parâmetro para dicas. Para dicas, use --hint
.
- Em
notify-send.py -r ID
e notify-send.py --replaces-id ID
existe. Para substituir uma chamada de notificaçãonotify-send.py
pelo ID retornado pela notificação a ser substituída.
notify-send.py
retorna o ID da notificação recém-criada.
notify-send.py --replaces-process NAME
existe. Toda notificação criada com o mesmo NAME substituirá todas as notificações anteriores pelo mesmo NAME. Se chamado com esse parâmetro notify-send.py
pode bloquear, é melhor chamar com um final &
.
Instalação
Requer 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.
notificar-enviar [.py] como usuário root
Para exibir notificações, mesmo que libnotify ou
notify-send.py
é usado a partir do usuário root, esses dois scripts são úteis.
#!/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
Com notify-send.sh
assim:
#!/bin/bash
notify-send.py "$@" &
Veja também
Também dê uma olhada no meu daemon de notificação inspirado em Dunst , mas com várias melhorias, incluindo a possibilidade de um plano de fundo transparente e um centro de notificações que armazena notificações.