Notificar-enviar notificaciones que aparecen debajo de la ventana

Notificar-enviar notificaciones que aparecen debajo de la ventana

Escribí un script de shell para asegurarme de que mi hija no juegue Minecraft en su Raspberry Pi durante más de 60 minutos a la semana :). Parte del script se utiliza notify-sendpara mostrar notificaciones emergentes que advierten de la cantidad de tiempo restante. Sin embargo, ambas notify-sendnotificaciones notify-send --urgency=criticalaparecen debajo de la ventana de Minecraft, por lo que solo se ve una pequeña parte de gris sobre la barra de título de la ventana. ¿Por qué ocurre esto? ¿Hay algo más que pueda hacer para generar una advertencia visible (en caso de que existan alternativas notify-send)?

Respuesta1

Cuando utiliza 'notificar-enviar', la apariencia de la notificación se decide por dosotrocomponentes:

  • elservidor de notificacionesque crea ventanas emergentes con una apariencia determinada (por ejemplo, Notification-daemon, notify-osd, xfce4-notifyd, dunst, dzenify, lxqt-notificationd);
  • el administrador de ventanas que finalmente decide la posición de cada ventana y el orden z en el escritorio.
  • ('notificar-enviar' no muestra nada en sí, simplemente envía una solicitud de "mostrar notificación").

Entonces, o el servidor de notificaciones actual no se está esforzando lo suficiente para que las ventanas emergentes estén siempre en la parte superior, o el administrador de ventanas ha decidido que las ventanas de pantalla completa tienen prioridad de todos modos, o el administrador de ventanas (o el propio Xorg) tiene algunos errores.

Puede experimentar cambiando el servidor de notificaciones: primero finalice el proceso del actual (y elimínelo del "inicio automático" del entorno de escritorio), luego instale e inicie uno nuevo (por ejemplo, ejecutando /usr/lib/notify-osd/notify-osd &).

Para determinar qué ID de proceso actúa actualmente como servidor de notificaciones, utilice:

gdbus call -e -d org.freedesktop.DBus \
              -o /org/freedesktop/DBus \
              -m org.freedesktop.DBus.GetConnectionUnixProcessID \
                 "'org.freedesktop.Notifications'"

Como alternativa al envío de notificaciones en general, puede utilizar programas que creen una ventana normal con texto, por ejemplo, xmessage; mensajegx; o zenidad. Quizás sea más probable que se comporten correctamente.

información relacionada