Dunst: Soporte para notificaciones nativas de Chrome

Creado en 17 sept. 2017  ·  18Comentarios  ·  Fuente: dunst-project/dunst

Solo quería iniciar una discusión para ver qué tipo de trabajo se necesitaría para admitir las notificaciones nativas de Chrome. Parece que dunst es compatible con la mayoría de las capacidades que necesita Chrome, pero dunst todavía está en la lista negra de Chrome.

Se puede ver más discusión aquí: https://bugs.chromium.org/p/chromium/issues/detail?id=676220

external

Comentario más útil

¡Ups, mi mal! Con el maestro Dunst actual, incluso muestra el icono de notificación personalizado. (estaba usando 1.2.0 antes) ¡Todo funciona perfectamente!

2017-12-07-134321_708x319_scrot

Todos 18 comentarios

Supongo que el cromo se comporta igual y lo probé ayer con cromo:

En general, un servidor de notificaciones puede admitir "capacidades" . En el hilo se dice que se requieren action y action-icons . Pero incluso después de fingir, que dunst admite action-icons , chromium no envía las notificaciones a dunst. Chromium tampoco consulta las capacidades.

Solo forzar el cromo ayuda a hacer esto.

Hm, por lo que veo en la fuente, las únicas capacidades requeridas son body y action

@tsipinakis dbus-monitor path=/org/freedesktop/Notifications ni siquiera muestra ninguna actividad al iniciar una notificación.

Tal vez @hobarrera pueda contarte más sobre su participación en el hilo.

Lo siento, no hay mucho más que pueda agregar.

El parche que hace la lista negra en sí está aquí . Mi C ++ no es lo suficientemente bueno para seguir adelante, pero tal vez puedas encontrar algo relevante.

En realidad, parece que la llamada GetCapabilities se realiza al iniciar Chrome, no cuando se muestra una notificación:

$ dbus-monitor path=/org/freedesktop/Notifications                                            
signal time=1505773000.276594 sender=org.freedesktop.DBus -> destination=:1.1082 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.1082"                            
signal time=1505773000.276608 sender=org.freedesktop.DBus -> destination=:1.1082 serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
   string ":1.1082"                            
method call time=1505773003.220341 sender=:1.1086 -> destination=org.freedesktop.Notifications serial=3 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=GetCapabilities

La última versión estable de Dunst devuelve esto: ['actions', 'body', 'body-hyperlinks', 'body-markup'] .

Espere, ¿están diciendo que las notificaciones publicadas por Chrome _no deberían_ mostrarse a través de Dunst?
Porque lo hacen por mí.

Las dos entradas que comienzan con # son acciones y no hacen nada en absoluto.
Además, el icono es siempre el icono de información genérico.

2017-09-20-091531_1920x1080_scrot

ps que es Chrome 61, pero ha estado funcionando desde que Google introdujo las notificaciones nativas en Linux.

@JesseFarebro ¿Qué versión está ejecutando? ¿Puede verificar que está usando una que admita notificaciones nativas?

@Tadly ¿Puede proporcionar un volcado de dbus-monitor comenzando con Chrome cerrado y recibiendo una notificación? Solo para tener una idea de cómo se comporta Chrome desde el lanzamiento hasta el envío de notificaciones y las acciones.

El ícono puede estar relacionado con el # 339 si estás en el último establo.

@Tadly, ¿ podría también proporcionar la configuración de la bandera chrome://flags/#enable-native-notifications ?

@tsipinakis si me dices cómo, claro. Nunca utilicé ninguna de las herramientas de dbus ni trabajé con dbus. Me ahorraría mucho tiempo :)

Además, los íconos generalmente funcionan. Chrome es el único en el que he notado que no lo hace (aunque no recibo muchas notificaciones en Linux)

@bebehei chrome://flags/#enable-native-notifications está habilitado. Recuerdo haber hecho eso ahora que lo mencionas :)

si me dices como, seguro

Simplemente cierre Chrome por completo, ejecute dbus-monitor en una terminal y luego abra Chrome y envíe una notificación desde él.

@tsipinakis No sabía dónde más ponerlo pero aquí tienes ... https://pastebin.com/uS6bJn4q

@bebehei chrome: // flags / # enable-native-Notifications está habilitado. Recuerdo haber hecho eso ahora que lo mencionas :)

Así que esa es la razón. ¿Puedes probar que "predeterminado" no muestra notificaciones?

@tsipinakis Para mí, esto parece un error de implementación de Chrome. Dunst proporciona todas las mayúsculas requeridas y parece que Chrome se comporta mal en su comportamiento "predeterminado".

@bebehei Puede confirmar. Regresarlo a los valores predeterminados me da notificaciones de cromes nuevamente.

@tsipinakis Ejecutando Chrome 61, última versión. Tengo habilitadas las # enable-native-Notifications y cuando ejecuto dbus-monitor mientras abro Chrome, no hay consultas a dbus para las capacidades de notificación en absoluto. Ejecutar el último dunst del maestro y notify-send verificado funciona como se esperaba con las consultas de dbus correctas.

¿Algo más que puedas sugerir?

parece que Chrome se comporta mal en su comportamiento "predeterminado".

Comentario de las fuentes del último cromo estable:

// Selection of the implementation works as follows:
//   - Android always uses the NativeNotificationDisplayService.
//   - Mac uses the NativeNotificationDisplayService by default but
//     can revert to MessageCenterDisplayService via
//     chrome://flags#enable-native-notifications or Finch
//   - Linux uses MessageCenterDisplayService by default but can switch
//     to NativeNotificationDisplayService via
//     chrome://flags#enable-native-notifications
//   - All other platforms always use the MessageCenterDisplayService.

Como puede ver, este comportamiento es intencional, mientras que Mac usa notificaciones nativas para "Predeterminado", Linux no lo hace y requiere la bandera 😞.


El ícono puede estar relacionado con el # 339 si estás en el último establo.

En el último maestro, el icono aún no se muestra cuando se envía una notificación por Chrome (por ejemplo, por este sitio web ). Como se mencionó, las imágenes están presentes cuando otras aplicaciones envían notificaciones, por lo que debe ser algo que tenga que ver específicamente con el cromo.


@JesseFarebro Me di cuenta de que si ejecuto chromium --enable-native-notifications , las notificaciones nativas no están habilitadas, pero si se configura #enable-native-notifications en Enabled en chrome://flags , las notificaciones nativas comienzan a funcionar . No estoy seguro de por qué, otras banderas parecen funcionar incluso cuando se pasan como argumento CLI. Pruebe diferentes formas de establecer la bandera, tal vez una de ellas funcione para usted.

ACTUALIZACIÓN: Descubrí que esta es la forma correcta de habilitar esta bandera a través de argumentos CLI: chromium --enable-features=NativeNotifications

La bandera se ha habilitado de forma predeterminada y se enviará en Chromium 64 .

La notificación muestra el ícono genérico de Chrome cuando se usa 64.0.3278.0 (canal de desarrollo).

¡Ups, mi mal! Con el maestro Dunst actual, incluso muestra el icono de notificación personalizado. (estaba usando 1.2.0 antes) ¡Todo funciona perfectamente!

2017-12-07-134321_708x319_scrot

@slokhorst Gracias por notificarnos. Como la función ahora se está enviando a la corriente y se lanzará a fines de enero, cerraré este problema.

Los iconos que faltan probablemente estén relacionados con el # 447. Puedo decir con certeza que una nueva versión de Dunst se envía antes que el cromo.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

patrick-motard picture patrick-motard  ·  6Comentarios

wpovell picture wpovell  ·  5Comentarios

knopwob picture knopwob  ·  5Comentarios

existme picture existme  ·  4Comentarios

chhajedji picture chhajedji  ·  4Comentarios