Schließen-Button bei notify-osd?

41

Ist es möglich, eine Schaltfläche zum Schließen des OSD zu erhalten?

Es bleibt für eine lange Zeit, und manchmal habe ich Kollegen auf meinem PC und ich möchte nicht, dass sie sehen, wer online ist oder welchen Song ich gerade höre. Nein, ich kann es nicht deaktivieren.

theTuxRacer
quelle
Die einzige Problemumgehung, um eine Schaltfläche zum Schließen der Benachrichtigung zu erhalten, ist die Verwendung von AWN und des Benachrichtigungs-Plugins. Es funktioniert gut mit Rhythmbox und exaile auch.
theTuxRacer
Diese Antwort auf askubuntu.com/questions/14354/close-button-on-notify-osd/… verhindert grundsätzlich die Anzeige von Benachrichtigungen. Es ist vorübergehend und wenn dieser Prozess angehalten wird, wird die Benachrichtigungsanzeige fortgesetzt. Wenn mit "Ich kann es nicht deaktivieren" gemeint ist, dass Sie nicht die Freiheit haben, den Benachrichtigungsmechanismus zu deaktivieren dbus, lässt diese Lösung es intakt ... Wenn dies bedeutet, dass Sie es versucht haben und dies nicht konnten, wird diese Antwort erneut eine Lösung anbieten.
George Rowell

Antworten:

16

Ihre beste Wette wäre, einen Fehler einzureichen und nach der Funktion zu fragen. Wenn Sie einen solchen Fehler in der Wunschliste melden, geben Sie bitte einige durchdachte Fälle an, warum sich diese Funktion für einen größeren Teil der Ubuntu-Benutzergemeinschaft als nützlich erweisen könnte.

Mike
quelle
Ja, das werde ich tun. Aber wo kann ich das machen? Launchpad?
theTuxRacer
1
Es ist bereits auf der Wunschliste, aber ich denke, es werden keine Maßnahmen ergriffen. Bitte stimmen Sie ab bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/381416
theTuxRacer
7
@Kaustubh P Lies dies, markshuttleworth.com/archives/253 speziell diesen Teil: The most controversial part of the proposal is the idea that notifications should not have actions associated with them. In other words, no buttons, sliders, links, or even a dismissal [x].Lass deine Hoffnungen nicht aufkommen , das wird sich so schnell wie möglich nicht ändern.
Jesaja,
1
Es gibt eine Spezifikation, mit der das Timing der Benachrichtigungsvariable festgelegt werden kann - längere Nachrichten bleiben länger oder aktualisierte Nachrichten werden verlängert. Eine Patch-Implementierung, die wir begrüßen würden, würde es uns ermöglichen, die Zeit für sehr kurze Nachrichten zu verkürzen :-)
Mark Shuttleworth
10
Außerdem möchten wir einen "Nicht stören" -Modus hinzufügen, in dem nur (dringende) Systembenachrichtigungen angezeigt werden, z. B. bei sehr niedrigem Akkuladestand und Hardwareproblemen. Sie können also die Funktion "Nicht stören" verwenden, um zu verhindern, dass Personen Ihre Benachrichtigungen sehen, wenn sie über Ihre Schulter schauen, oder wenn Sie an den Projektor angeschlossen sind (wir möchten die Benachrichtigungen jedoch lieber auf Ihrem Laptopbildschirm und nicht auf dem Projektor platzieren, wo sie verschiedene Displays sind). Auch hier wäre ein Patch dafür willkommen.
Mark Shuttleworth
35

Die Entscheidung, für die ephemeren Benachrichtigungen kein Chrom zu verwenden, ist sehr bewusst und wird sich nicht ändern. Das Grundprinzip ist, dass diese Benachrichtigungen so leicht wie möglich sein sollten.

Es gibt jedoch einige Dinge, die Sie tun können, um Ihnen weiter zu helfen.

Es gibt eine Spezifikation, mit der das Timing der Benachrichtigungsvariable festgelegt werden kann - längere Nachrichten bleiben länger oder aktualisierte Nachrichten werden verlängert. Eine Patch-Implementierung, die wir begrüßen würden, würde es uns ermöglichen, die Zeit für sehr kurze Nachrichten zu verkürzen :-)

Außerdem möchten wir einen "Nicht stören" -Modus hinzufügen, in dem nur (dringende) Systembenachrichtigungen angezeigt werden, wie z. B. sehr schwacher Akku und Hardwareprobleme. Sie können also die Funktion "Nicht stören" verwenden, um zu verhindern, dass Personen Ihre Benachrichtigungen sehen, wenn sie über Ihre Schulter schauen, oder wenn Sie an den Projektor angeschlossen sind (wir möchten die Benachrichtigungen jedoch lieber auf Ihrem Laptopbildschirm und nicht auf dem Projektor platzieren, wo sie verschiedene Displays sind). Auch hier wäre ein Patch dafür willkommen.

Mark Shuttleworth
quelle
wow, danke für die antwort! Ich schätze, ich könnte weinen!
theTuxRacer
5
Ich hoffe dieser "Bitte nicht stören" Modus ist dann implementiert.
Roddie
Für dieses System für dringende Benachrichtigungen sollte es eine Möglichkeit geben, zu unterscheiden, welche Benachrichtigungen als dringlich eingestuft werden.
Oxwivi
Ich stimme diesen Entscheidungen nicht zu 100% zu, aber zumindest scheinen sie gut zu funktionieren.
RolandiXor
Ich würde versuchen, in den Quellcode zu schauen und den Patch einzureichen (falls möglich).
Grün
14

Es gibt keine Schaltfläche zum Schließen, der Blob ist nicht einmal in Bezug auf die Maus vorhanden (wenn Sie darauf klicken, klickt er einfach auf das, was sich dahinter befindet). Weitere Informationen finden Sie hier:

https://wiki.ubuntu.com/NotifyOSD

Diese Funktionalität wird sich nicht ändern. Es wurden mehrere Fehlerberichte veröffentlicht, in denen Sie gefragt wurden, wonach Sie gefragt haben. Alle wurden strengstens abgelehnt.

Sie können jedoch ein Programm erstellen, um es zu schließen, den OSD-Code ein wenig abspalten und einige der vorhandenen Code-Zweige verwenden, die dies bereits tun. Im Programm D-Feet finden Sie Informationen zum Durchsuchen und Spielen mit der D-Bus-Schnittstelle sowie den Code auf dem Launchpad.

Martin Owens -doctormo-
quelle
Und binde das Programm an den Hotkey, oder?
Extender
Es ist bereits auf der Wunschliste, aber ich denke, es werden keine Maßnahmen ergriffen. Bitte stimmen Sie ab bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/381416
theTuxRacer
Diese Antwort auf askubuntu.com/questions/14354/close-button-on-notify-osd/… verhindert Benachrichtigungen im Grunde genommen und obwohl sie nicht wirklich deaktiviert sind, ist ihre Anzeige. Es ist vorübergehend und wenn dieser Prozess angehalten wird, wird die Benachrichtigungsanzeige fortgesetzt.
George Rowell
7

Es gibt eine Möglichkeit, Benachrichtigungen über einen Schließen-Button abzurufen.

Bildbeschreibung hier eingeben

Aus dem Artikel von Webupd8

Installieren Sie zuerst Avant Window Navigator aus dem Software Center und fügen Sie den "Notification Daemon" zum Dock hinzu.

Drücken Sie nun Alt + F2und fügen Sie eingconf-editor

Navigieren Sie dann zu apps> awn-applet-notification-daemon (dies ist die neueste AWN aus dem AWN-Trunk-PPA. Möglicherweise handelt es sich um apps> avant-window-navigator> awn-applet-notification-daemon in älteren Versionen von Avant Window Navigator ). Wenn Sie auf eine Taste klicken, wird die Beschreibung unten angezeigt, damit Sie wissen, wie Sie sie optimieren können. Der wichtigste Schlüssel ist: "kill_standard_daemon" - stellen Sie sicher, dass dies aktiviert ist, da sonst die AWN-Benachrichtigungen nicht funktionieren.

Zum Beispiel ist "override_x" die horizontale Position auf dem Bildschirm (für die ich "1900" verwendet habe, weil meine Bildschirmbreite 1920 ist und ich möchte, dass die Benachrichtigungen rechts angezeigt werden), "override_y" ist die vertikale Position ( für die ich "30" verwendet habe, damit der Benachrichtigungsdialog in der oberen rechten Ecke angezeigt wird) und "gradient_factor" die Transparenz ist. Das sollte ausreichen, um Ihnen den Einstieg zu erleichtern.

Deaktivieren Sie zum Anpassen der Farben das Kontrollkästchen "use_theme" und geben Sie dann "text_colour" und "bg_colour" usw. an.

Eine wichtige Funktion, die Sie aktivieren möchten, ist "show_icon". Daraufhin wird in Ihrem Avant Window Navigator-Dock ein Symbol angezeigt, auf das Sie klicken können, um die Benachrichtigungen vorübergehend zu deaktivieren / aktivieren.

Lincity
quelle
1
Das ist übrigens so, wie mein Setup gerade ist :) Das Hinzufügen des Benachrichtigungs-Applets des AWN gibt mir die Funktionalität, die ich möchte. Danke für die Antwort :)
theTuxRacer
3

Anstatt den Avant Window Navigator zu verwenden, können Sie dies auch tun (nur unter Lucid getestet):

Installieren Sie xfce4-notifyd aus dem Software-Center und drücken Sie Alt+ F2und fügen Sie es einkillall notify-osd

Dadurch wird zum Benachrichtigungs-Daemon von XFCE gewechselt, der dem Standard-Daemon sehr ähnlich ist. Wenn Sie den Mauszeiger darüber halten, wird nur eine Schließen-Schaltfläche angezeigt.

Lincity
quelle
2

Ich habe bereits darüber gelesen und kann die Gründe für das Design verstehen, aber in der Praxis lenken sie ab, wenn sie nicht einfach zu beseitigen sind.

Durch die Verwendung von https://launchpad.net/caffeine , einer Statusleisten-App, mit der Bildschirm- und Stromsparmaßnahmen verhindert werden können, werden die Popups ebenfalls deaktiviert.

Durch das Blockieren der Benachrichtigung wird die Notwendigkeit eines Benachrichtigungsverlaufs hervorgehoben, dies wurde jedoch auch als Problem angesprochen und als nicht behebbar behoben: bugs.launchpad.net/notify-osd/+bug/382094

Cas
quelle
Sie machen die Benachrichtigungen ein kaum nützliches Ärgernis ..
Dakota
1

Verringern Sie die Verzögerung mit der App notify-osd-conf.

borjacampina
quelle
Ich könnte das versuchen, aber es gibt wirklich einige Dinge, für die ich etwas Zeit brauche, um mich selbst zu lesen. daher die Forderung nach einem Schließen-Button. ansonsten danke für die heads-up!
theTuxRacer
2
@ObsessiveFOSS Dies ist als Lösung für das in der Frage angegebene Problem gedacht, und es scheint, als könnte es funktionieren. Auch wenn dies von einer Erweiterung und einer detaillierteren Darstellung profitieren würde, wäre es als Kommentar nicht besser dran . borjacampina: Ich empfehle, dies zu bearbeiten, um genau zu erklären, wie die Verzögerung auf diese Weise verringert werden kann.
Eliah Kagan
1

Lesezeichen: Schließen-Button bei notify-osd?

ref:

Die vorab bewährten Konzepte für bash"deaktivierte" OSD-Popup-Graffiti-Lösungen sind wie folgt konzipiert und schraffiert:

dbus-monitor "interface='org.freedesktop.Notifications'" |             \
grep --line-buffered "member=Notify"                     |             \
sed -u -e  's/.*/killall notify-osd/g'                   |             \
bash

Dies kann in einem Terminal oder als Hintergrundaufgabe ausgeführt werden. Beenden Sie diese Aufgabe, und das Popup-Graffiti wird fortgesetzt.

Das OP sagte "Nein, ich kann es nicht deaktivieren". Wenn dies bedeutet, dass das Benachrichtigungssystem vom Poser NICHT deaktiviert werden soll, dann stimmt diese Lösung damit überein. Das System ist intakt. Wenn dies bedeutet, dass der Poser nicht weiß, wie dies zu tun ist, ist die Lösung ebenfalls relevant.

Details unten erklärt. Das Ultimative wäre, alles in den DBus einzubetten und direkt aufzurufen

  qdbus    org.freedesktop.Notifications                \
          /org/freedesktop/Notifications                \
           org.freedesktop.Notifications.CloseNotification(uint id)

Eine sehr, sehr, sehr naive rudimentäre Lösung, die eher ein Proof-of-Concept als ein praktischer Ansatz ist und im Wesentlichen "deaktiviert" notify-osd(oder zumindest deren Auswirkungen). Vergiss nicht, es zu beenden, wenn du mit dem Testen fertig bist! per ETX'ng mit <ctrl> -C oder Schließen des Terminalfensters etc. Es macht seinen Job aber nicht sehr pragmatisch! da leider andere Jobs leiden, die versuchen, ihre zu tun ...

  while true; do killall notify-osd; done

(um relevante Aktivitäten zu "hören", möchten Sie vielleicht " grepraus"

 notify-osd: no process found ....

)

Testen Sie es, indem Sie es in einem Terminalfenster ausführen und in einem anderen Terminalfenster versuchen:

  notify-send "test 1" "now you see it not"
  notify-send "test 2" "you see it not after test 1 evaporates"
  notify-send "test 3" "finally after test 2 evaporates"

Beenden Sie den ersten Prozess und wiederholen Sie die Nachrichten.

Vielleicht könnte ein notify-osdIndikator für die unity-panel-serviceaufrufen killall notify-osd. Der Hot-Spot-Schließen-Button wäre im Benachrichtigungsfenster nicht vorhanden (& kann nicht!), Wäre aber im Anzeigefeld verfügbar. Dies ist völlig analog zu dem Konzept, das Unity für Windows hat. Die Verwendung der oberen Leiste zum Schließen von Benachrichtigungen ähnelt der Art und Weise, wie Unity Fenstermenüs mit geschlossenen Mini-Maxi-Feldern in die obere Menüleiste verschiebt.

Bei einer wirklich eleganten Lösung wird der Indikator angezeigt, wenn die DBus-Aktivität für die notify-osdManifeste aktiv ist, und wird ausgeblendet, wenn keine Benachrichtigungen ausstehen.

Möglicherweise wird auch das Problem der gestapelten Benachrichtigungen behoben. Es wird immer nur eine Benachrichtigung angezeigt. Wenn mehrere Benachrichtigungen anstehen, muss eine Benachrichtigung verflogen sein, bevor die nächste angezeigt wird. In der Regel können sie nicht gleichzeitig angezeigt werden.

DBus-monitorÜber die notify-osdBenachrichtigungsschnittstelle werden ausstehende Benachrichtigungen jedoch sofort bestätigt, auch wenn bereits eine angezeigt wird. (UND wenn killall notify-osdsofort ausgestellt - Presto Poof!)

Wählen Sie Alle, ziehen Sie die folgenden Tests per Drag & Drop in ein Terminalfenster:

  notify-send "test 1" "now you see it"
  notify-send "test 2" "you see it after test 1 evaporates"
  notify-send "test 3" "finally after test 2 evaporates"

mache jetzt dasselbe mit p {r} oof:

  notify-send "test 1" "now you don't"
  notify-send "test 2" "you see it not! after test 1 evaporates"
  notify-send "test 3" "NOT finally after test 2 evaporates"
  killall notify-osd
  notify-send "gonzo" "gone nada zip zilch"

Das killall notify-osdin der vorgeschlagenen Lösung wird ausgelöst, wenn DBus monitorOSD-Popup-Graffiti-Aktivität erkannt wird.

George Rowell
quelle
0

Es war eine bewusste Entscheidung, die Interaktion mit der Benachrichtigungsblase auszulassen (es handelt sich also um eine passive Benachrichtigung), sodass Sie einen Fehlerbericht auf Launchpad veröffentlichen (möglicherweise gibt es bereits einen) und sich dafür einsetzen können, dass dieser geändert wird.

Es ist nicht etwas, was ich bald sehen kann, es sei denn, es gibt große Nachfrage (und es gibt keine)

Es könnte sich auch lohnen, das Problem zu lösen, indem Sie nach einer Möglichkeit fragen, bestimmte Programme vom Zugriff auf das notify-osd-System auszuschließen.

user5260
quelle
0

Ein Schließen-Button in den Benachrichtigungen selbst löst Ihr Problem nicht. Sie sehen weiterhin die Benachrichtigungen und müssen auf die Schaltfläche "Schließen" klicken, um sie zu schließen, sofern es eine gibt.

Sie sollten stattdessen die Option "Benutzer wechseln" im Systemmenü oben rechts (das Zahnradsymbol) auswählen und den Gast-Login verwenden, um anderen Benutzern die Verwendung Ihres Computers zu ermöglichen. Dadurch wird eine temporäre Sitzung erstellt, die von ihnen verwendet werden kann, und es werden keine Browserverlaufsdaten, Cookies usw. gespeichert, wenn sich dieser Benutzer abmeldet. Dies verhindert, dass sie Ihre Benachrichtigungen sehen und möglicherweise Ihre eigenen Daten (Webprotokoll, Downloads, Anmeldungen usw.) stören, wenn sie den Äther von Ihrem Computer aus durchlaufen.

dobey
quelle