답변:
이 질문은 정말 흥미로운 답변입니다.
dbus-monitor
실행될 때 신호를 기다리며 도착하면 신호를 포착하고 적절한 정보를 제공합니다. 마찬가지로 Notifications에 대한 정보를 얻기 위해 실행될 수 있습니다 . 실행될 때 :
dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "member=Notify\|string"
알림을 기다리며 알림이 도착하면 알림 정보를 제공합니다.
예를 들어 사운드가 증가 / 감소하거나 노래 트랙이 변경되거나 기타 메시지가 표시 될 때. notify-send
다른 터미널에서 명령을 사용하여 수동으로 데스크탑 알림을 작성하고 있습니다 .
notify-send "Hello How are you?"
그런 다음 dbus-monitor
명령이 실행 되는 첫 번째 터미널은 다음 과 같은 메시지를 표시합니다.
saurav@saurav-P4I45Gx-PE:~$ dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "member=Notify\|string"
string ":1.473"
method call sender=:1.474 -> dest=:1.475 serial=7 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify
string "notify-send"
string ""
string "Hello How Are You?"
string ""
string "urgency"
이제 위의 출력을 쉽게 전달하여 espeak
메시지를 읽을 수 있습니다 . 예를 들어
위의 dbus-monitor
명령을 다음으로 바꾸면 알림 메시지가 표시됩니다.
확인, 작동 방식 :
터미널에서이 명령을 실행하고 실행 상태를 유지하십시오.
dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "string" | grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v | grep --line-buffered '.*(?=string)|(?<=string).*' -oPi | grep --line-buffered -v '^\s*$' | xargs -I '{}' espeak {}
나는 그것이 매우 길어 졌다는 것을 알고 있지만 실제 알림을 필터링하면 시간이 오래 걸리기 때문에 작게 만드는 다른 방법은 없습니다.
그런 다음 위에서 설명한 방식 notify-send
이나 다른 방식으로 데스크탑 알림을 실행하십시오 . 을 사용하고 notify-send
있습니다. 따라서 다른 터미널에서 다음 명령을 실행하십시오.
notify-send "Hello! I am Saurav Kumar."
명령을 실행하자마자 알림을 말 (읽기)합니다.
4-5 시간을 먹었지 만 지금은 작동하게되어 기쁩니다.
또한saynoti
읽기 알림을 원할 때마다 자신 만의 명령을 만들고 실행할 수 있습니다. 다음 단계에 따라 수행 할 수 있습니다.
먼저 실제 명령을이라는 파일에 저장하십시오 saynoti
. 실제 명령 이름이 될 파일 이름을 사용할 수 있습니다.
그런 다음 파일을 실행 가능하게 만들고 다음으로 이동하거나 복사하십시오 /bin
.
chmod +x saynoti
sudo cp saynoti /bin
이제 새 명령을 실행하여 말하기 알림 을 시작할 수 있습니다 .
saynoti
실행중인 프로세스를 종료하려면 다음 명령을 실행할 수 있습니다.
pkill dbus-monitor
또는 실행중인 터미널에서 Ctrl+ C를 누르기 만하면 saynoti
됩니다.
saynoti
시스템을 시작 응용 프로그램 으로 만들어 시스템을 시작할 때마다 실행할 수도 있습니다 .
이 질문에 감사드립니다. 이 질문 때문에 많은 것을 배웠습니다. :)
문제가 발생하거나 추가 변경 / 수정이 필요한 경우 회신하십시오. 최종 작업 버전을 얻게되어 기쁩니다.
dbus-monitor
저는 배우기를 시작하고 싶습니다
나는 "내 이메일 주소에 여분의 문제가 있었기 때문에 위의 코드 라인에 이것을 추가 할 필요가 없기 때문에 추가했습니다."
| sed 's / \ "// g'|
=>
| grep --line-buffered -v '^ \ s * $'| sed 's / \ "// g'| xargs -I '{}'이 (가) 말합니다}
멋진 일. notify-send lib 자체를 조정하는 것보다 훨씬 낫습니다. 4 "안녕하세요! 저는 Saurav Kumar입니다."
업데이트 : 꾸준히 작동하지 않습니다. 내가 사용할 것이다 | 티 -a $ 파일 |