Benachrichtigen - Benachrichtigungen senden, die unter dem Fenster angezeigt werden

Benachrichtigen - Benachrichtigungen senden, die unter dem Fenster angezeigt werden

Ich habe ein Shell-Skript geschrieben, um sicherzustellen, dass meine Tochter nicht länger als 60 Minuten pro Woche Minecraft auf ihrem Raspberry Pi spielt :). Ein Teil des Skripts verwendet notify-sendPopup-Benachrichtigungen, die vor der verbleibenden Zeit warnen. Allerdings werden sowohl - notify-sendals auch notify-send --urgency=critical-Benachrichtigungen unter dem Minecraft-Fenster angezeigt, sodass nur ein kleiner grauer Bereich über der Fenstertitelleiste sichtbar ist. Warum tritt dies auf, und kann ich sonst noch eine sichtbare Warnung anzeigen (falls es Alternativen zu gibt notify-send)?

Antwort1

Wenn Sie „Notify-Send“ verwenden, wird das Erscheinungsbild der Benachrichtigung von zweiandereKomponenten:

  • DieBenachrichtigungsserverwelches Popup-Fenster mit einem bestimmten Erscheinungsbild erstellt (z. B. notification-daemon, notify-osd, xfce4-notifyd, dunst, dzenify, lxqt-notificationd);
  • der Fenstermanager, der letztendlich die Position und Z-Reihenfolge jedes Fensters auf dem Desktop entscheidet.
  • (,notify-send‘ zeigt selbst nichts an, es sendet lediglich eine „Benachrichtigung anzeigen“-Anforderung.)

Entweder bemüht sich der aktuelle Benachrichtigungsserver nicht ausreichend, die Popups immer im Vordergrund anzuzeigen, oder der Fenstermanager hat entschieden, dass Vollbildfenster ungeachtet dessen Vorrang haben, oder der Fenstermanager (oder Xorg selbst) weist einige Fehler auf.

Sie können experimentieren, indem Sie den Benachrichtigungsserver ändern – beenden Sie zuerst den Prozess für den aktuellen (und entfernen Sie ihn aus dem „Autostart“ der Desktopumgebung), und installieren und starten Sie dann einen neuen (z. B. durch Ausführen /usr/lib/notify-osd/notify-osd &).

Um zu ermitteln, welche Prozess-ID derzeit als Benachrichtigungsserver fungiert, verwenden Sie:

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

Als Alternative zu „Notify-Send“ im Allgemeinen können Sie Programme verwenden, die ein normales Fenster mit Text erstellen – beispielsweise xmessage, gxmessage oder zenity. Diese verhalten sich wahrscheinlich korrekter.

verwandte Informationen