답변:
notify-send
시간 초과 또는 사라지기 전에 기존 알림을 교체 할 수 없습니다. 이것은 알려진 버그 입니다. 그러나 버그 보고서에 대한 의견 제시자가 이를 해결하기 위한 패치 를 게시 했습니다.
패치 된 버전의 libnotify-bin 패키지를 만들어 PPA를 교체 할 수 있습니다. 현재는 Ubuntu 12.04 전용이지만 현재 지원되는 다른 릴리스에 필요한 경우 의견을 게시하십시오. 가능한 한 최선을 다할 것입니다.
설치하려면 터미널을 열고 다음을 수행하십시오.
sudo apt-add-repository ppa : izx / askubuntu sudo apt-get 업데이트 sudo apt-get 설치 libnotify-bin
패치 notify-send
에는 두 개의 새로운 스위치 -p
(또는 --print-id ) 및 -r
(또는 --replace-id )가 포함됩니다. 는 --help
그들과 같이 설명합니다 :
-p, --print-id 알림 ID를 인쇄합니다. -r, --replace-id = REPLACE_ID 바꿀 알림의 ID입니다.
-p
하면 각각 notify-send
ID N (숫자 / 정수) 을 반환합니다 .notify-send
과 함께하는 것은 -r N
이전 통지를 대체합니다 즉시 .예를 들어, bash의 경우 다음을 사용하여 ID를 저장할 수 있습니다 notify-send -p ...
.
NID=$(notify-send -p "MESSAGE-1")
그런 다음 다음으로 바꾸십시오.
notify-send -r $NID "MESSAGE-2"
-r 변수가 처음에 0으로 초기화 되는 한 스크립트에서 -p 와 -r 을 재귀 적으로 사용할 수 있습니다 .
다음은 0.5 초 간격으로 0에서 100까지의 알림을 보여주는 간단한 스크립트입니다.
#! / bin / bash
NID = 0
{0..100..10}의 i 해야 할 것 NID = $ (알림-보내기 -p -r $ NID $ i) 수면 0.5 끝난
"동기식"힌트를 사용하여 이전 확인 알림을 대체 할 "확인"알림을 작성할 수 있습니다. 예를 들면 다음과 같습니다.
notify-send "Message" -h string:x-canonical-private-synchronous:anything
"x-canonical-private-synchronous"힌트 가이 문서에 지정되어 있습니다 . 힌트를 지정하려면을 사용하십시오 -h type:name:value
. 여기의 유형은 string
, name은 x-canonical-private-synchronous
이며 원하는 값이 될 수 있습니다.
첫 번째 알림이 그 힌트 만들어집니다 그래서 경우 와 두 번째는 물론이고, 두 번째는 바로 첫 번째 대체합니다. "확인 거품"열의 설명서에서 애니메이션 및 지속 시간 을 참조하십시오 .
string:x-canonical-private-synchronous:anything
정확히 내가 필요한 것입니다. 이 답변에 감사드립니다. 또한 문서 링크
X-ref :
notify-osd에서 새 알림이 종료되기를 기다리지 않고 강제로 표시하는 방법은 무엇입니까?
패치없이 간단하게 할 수 있습니다
#!/bin/bash
for i in {0..100..10}
do
killall notify-osd
notify-send "testing" $i
sleep 1
done
책갈피 :
'알림 보내기'를 사용하여 기존 알림을 즉시 바꾸려면 어떻게합니까?
notify-osd (2592) 오류를 보냅니다. 작업이 허용되지 않습니다. 그게 무슨 뜻이야?
권한이 부적절하다는 것을 의미 할 수 있습니다.
sudo killall notify-osd
notify-osd(2592): Operation not permitted
. 그게 무슨 뜻이야?
notify-send와 거의 동일하지만을 지원하는 간단한 Python 스크립트를 만들었습니다 --replaces-id
.
웹 : https://github.com/phuhl/notify-send.py
쉘에서 데스크탑 알림을 보내기위한 Python 스크립트.
Libnotify는 Linux 세계에서 많은 스크립트의 일부입니다. Desktop Notifications 사양의 지정된 많은 기능을 활용하여 셸 스크립트에 액세스 할 수 있습니다. 그러나 기존 알림을로 대체 할 수 는 없습니다replaces-id
. 이것은 알려져있다 버그 2008과이 패치 패치는 아직 (2018) 불구하고 업스트림되지 않은 2012 년 이후를.
이 파이썬 스크립트는 notify2 패키지를 사용하고 기능을 쉘에 노출시킵니다.
notify-send.py -h
쇼 대신 힌트에 대한 매개 변수가되는 데 도움이. 힌트를 사용하십시오 --hint
.notify-send.py -r ID
와는 notify-send.py --replaces-id ID
존재한다. 알림 호출을 교체 알림 notify-send.py
으로 반환 된 ID로 교체합니다.notify-send.py
새로 만든 알림의 ID를 반환합니다.notify-send.py --replaces-process NAME
존재합니다. 동일한 NAME으로 생성 된 모든 알림은 모든 알림을 동일한 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.
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 "$@" &
또한 Dunst 에서 영감을 얻은 알림 데몬 을 살펴보십시오 . 투명한 배경 및 알림을 저장하는 알림 센터의 가능성을 포함하여 몇 가지 개선 된 기능이 있습니다.