libnotify를 사용하여 스크립트를 실행할 수 있습니까?

libnotify를 사용하여 스크립트를 실행할 수 있습니까?

스크립트를 실행하는 데 사용할 수 있나요 libnotify?

notify-send스크립트를 사용하여 사운드를 재생하거나 bash 파일 및 기타 프로그램을 통해 더 복잡한 프로그램을 실행하고 싶습니다 .

그게 가능합니까? 팝업만 사용하는 것 같나요?

답변1

너무 가까워서 실제로 스크립트를 실행하고 싶지 않지만 libnotify대신 알림을 트리거하는 이벤트에 대한 모니터를 만듭니다. 전송되는 실제 메시지를 트리거할 수도 있지만 notify-send직접 시도하지 않았으므로 확인할 수 없습니다.

노트: libnotifynotify-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를 확인하세요.

관련 정보