스크립트를 실행하는 데 사용할 수 있나요 libnotify
?
notify-send
스크립트를 사용하여 사운드를 재생하거나 bash 파일 및 기타 프로그램을 통해 더 복잡한 프로그램을 실행하고 싶습니다 .
그게 가능합니까? 팝업만 사용하는 것 같나요?
답변1
너무 가까워서 실제로 스크립트를 실행하고 싶지 않지만 libnotify
대신 알림을 트리거하는 이벤트에 대한 모니터를 만듭니다. 전송되는 실제 메시지를 트리거할 수도 있지만 notify-send
직접 시도하지 않았으므로 확인할 수 없습니다.
노트: libnotify
notify-send
메시지는 검색에서 찾은 내용 에서만 생성될 수 있습니다 .
사용하는 이벤트를 모니터링하세요 dbus-monitor
. 예제 스크립트는 다음과 같이 구성될 수 있습니다.
에서 발췌Bash를 사용하여 리듬 박스의 트랙 변경을 지속적으로 모니터링하는 방법
#!/bin/bash
interface=org.gnome.Rhythmbox.Player
member=playingUriChanged
# listen for playingUriChanged DBus events,
# each time we enter the loop, we just got an event
# so handle the event, e.g. by printing the artist and title
# see rhythmbox-client --print-playing-format for more output options
dbus-monitor --profile "interface='$interface',member='$member'" |
while read -r line; do
printf "Now playing: "
rhythmbox-client --print-playing
done
위의 코드는 org.gnome.Rhythmbox.Player
인터페이스를 모니터링하여 호출할 멤버를 찾습니다. 멤버가 playingUriChanged
호출되면 명령은 결과를 읽고 read
내용을 변수에 저장합니다 line
.
콘텐츠는 line
실제로 내부적으로 사용되지 않고 단지 결과를 수집하는 데 사용됩니다 dbus-monitor
. 루프 내의 결과는 while
다음과 같이 인쇄됩니다.
Now playing: Daft Punk - Overture
Now playing: Daft Punk - The Grid
노래 제목은 에서 따왔습니다 rythmbox-client --print-playing
.
DBUS 신호/이벤트 식별
이를 달성하는 방법에 대한 자세한 내용은 다음 2가지 Q&A를 확인하세요.