Ubuntu tiene un sistema de notificación muy bueno. ¿Hay alguna manera de hacer que Ubuntu lea las notificaciones cuando aparecen?
¿O es posible vincular el texto en las notificaciones espeak
?
Ubuntu tiene un sistema de notificación muy bueno. ¿Hay alguna manera de hacer que Ubuntu lea las notificaciones cuando aparecen?
¿O es posible vincular el texto en las notificaciones espeak
?
Respuestas:
Esta pregunta es realmente interesante, así como la respuesta.
dbus-monitor
cuando se ejecuta, espera la señal y, cuando llega, la capta y le brinda la información adecuada. Del mismo modo, se puede ejecutar para obtener la información sobre notificaciones . Cuando se ejecuta:
dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "member=Notify\|string"
Esperará las notificaciones y cuando llegue cualquier notificación, le dará la información de las notificaciones.
Por ejemplo, cuando se aumenta / disminuye el sonido o se cambia cualquier pista de canción o cualquier otra, da el mensaje. Estoy creando manualmente una notificación de escritorio usando el notify-send
comando en cualquier otro terminal:
notify-send "Hello How are you?"
Luego, la primera terminal en la que dbus-monitor
se ejecuta el comando dará un mensaje como:
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"
Ahora la salida anterior se puede pasar fácilmente espeak
a leer el mensaje. Por ejemplo,
Reemplazando el dbus-monitor
comando anterior con el siguiente se leerá el mensaje de notificación:
Comprueba, ¿Cómo funciona?
Ejecute este comando en una terminal y déjelo en ejecución:
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 {}
Sé que se ha vuelto muy largo, pero no hay otra manera de hacerlo pequeño porque el filtrado de la notificación real lo hizo largo.
Luego ejecute una notificación de escritorio, ya sea como lo describí anteriormente, notify-send
o cualquier otra cosa. Estoy usando notify-send
. Entonces ejecutando el siguiente comando en otra terminal:
notify-send "Hello! I am Saurav Kumar."
Tan pronto como ejecute el comando, dirá (leerá) la notificación.
Aunque me comí mis 4-5 horas, pero ahora estoy feliz de hacerlo funcionar.
También puede hacer que su propio comando le gustesaynoti
y ejecutarlo cada vez que desee una notificación de lectura. Siguiendo estos pasos puede hacerlo:
Primero guarde el comando real en un archivo llamado saynoti
. Puede usar cualquier nombre de archivo que se convertirá en su nombre de comando real.
Luego haga que el archivo sea ejecutable y muévalo o cópielo a /bin
:
chmod +x saynoti
sudo cp saynoti /bin
Ahora puede simplemente ejecutar su nuevo comando para iniciar la Notificación oral :
saynoti
Para eliminar el proceso en ejecución, puede ejecutar este comando:
pkill dbus-monitor
o simplemente presione Ctrl+ Cen el terminal donde se saynoti
está ejecutando.
También puede ejecutar saynoti
cada vez que su sistema se inicia convirtiéndolo en una aplicación de inicio .
Me gustaría dar las gracias por esta pregunta. Debido a esta pregunta, aprendí muchas cosas. :)
Responda si tiene algún problema o necesita más cambios / modificaciones. Estoy seguro de que estará feliz de obtener la versión final de trabajo.
dbus-monitor
, quiero comenzar a aprender
Tuve problemas con el extra "en mis direcciones de correo electrónico, por lo tanto, he agregado esto a la línea de código anterior ya que espeak no necesita" en absoluto para leerlo;)
El | sed 's / \ "// g' |
=>
El | grep --line-buffered -v '^ \ s * $' | sed 's / \ "// g' | xargs -I '{}' espeak {}
COOL trabajo. Es mucho mejor que ajustar la biblioteca de notificación y envío 4 "¡Hola! Soy Saurav Kumar".
actualización: no funciona de manera constante. Voy a utilizar | tee -a $ archivo |