Я создал простой скрипт на python, который работает почти так же, как notify-send, но имеет поддержку --replaces-id
.
notify-send.py
Интернет: https://github.com/phuhl/notify-send.py
Сценарий питон для отправки уведомлений рабочего стола из командной строки.
Около
Libnotify является частью многих сценариев в мире Linux. Она использует многие из указанных особенностей Desktop Notifications спецификации и делает их доступными для раковины-скриптов. Это не однако позволяет заменить существующее уведомление с replaces-id
. Это известная ошибка с 2008 года и имеет участок с 2012 года Патч - прежнему не вверх по течению , хотя (2018 год).
Этот скрипт на python использует пакет notify2 и предоставляет функциональность оболочке.
Различия между notify-send.py и уведомляют-посыла
- В
notify-send.py -h
шоу поможет вместо того , чтобы параметр для подсказок. Применяется намеки --hint
.
- В
notify-send.py -r ID
и notify-send.py --replaces-id ID
существует. Для того , чтобы заменить вызов уведомления notify-send.py
с идентификатором , который был возвращен в уведомлении должен быть заменен.
notify-send.py
возвращается идентификатор вновь созданного уведомления.
notify-send.py --replaces-process NAME
существует. Каждое уведомление, созданное с тем же ИМЯ, заменит каждое уведомление перед тем же ИМЯ. При вызове с этим параметром notify-send.py
может блок, лучше называть с завершающим &
.
Установка
Требуется python3.
git clone https://github.com/phuhl/notify-send.py
cd notify-send.py
sudo pip install notify2
sudo python setup.py install
использование
$ 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.
извещать-посыл [.py] как суперпользователь
Для отображения уведомлений, даже если libnotify или
notify-send.py
используется от пользователя корня эти два сценария являются полезными.
#!/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
С notify-send.sh
следующим образом:
#!/bin/bash
notify-send.py "$@" &
Смотрите также
Также обратите внимание на моем уведомление-демоне , вдохновленный Данст , но с некоторыми улучшениями, в том числе возможности прозрачного фона и уведомление центра , который хранит уведомления.