Ich lerne, wie man GTK-Benachrichtigungen verwendet, und es scheint, dass jede Ausgabeanzeige über die Benachrichtigungsblase eine maximale Überlaufgröße hat, wahrscheinlich 10 Zeilen oder so. Wenn die Nachricht, die ich anzeigen möchte, mehr als das ist, wird sie unterdrückt. Gibt es eine Möglichkeit, die Anzeige der gesamten Nachricht zu erzwingen, ohne dass etwas unterdrückt wird?
Ich benutze übrigens notifyOSD.
command-line
python
gtk
notification
notify-osd
Rasierer
quelle
quelle
Antworten:
Ich habe dies vor einiger Zeit in einem (jetzt) gelöschten Q / A gepostet. Vielleicht ist es nützlich für Sie.
Ein Patch für (sehr) lange Nachrichten
Mit dem folgenden "Patch" können Sie Benachrichtigungen erhalten, solange dies auf Ihrem Desktop dauert:
Bei (sehr) langen Benachrichtigungen stattdessen:
Sie werden dies sehen:
Die Dauer der Nachricht wird automatisch auf die Länge des Textes eingestellt.
Was es macht
Benachrichtigungen, die von
notify-osd
(notify-send
) gesendet werden, sind auf ca. 120 Zeichen.Die Lösung "hört" auf gesendete Nachrichten mit
dbus-monitor
. Wenn eine Nachricht die 120 Zeichen überschreitet, übernimmt sie die Nachrichten und verwendet "ein eigenes" Nachrichtenfenster, um die Benachrichtigung anzuzeigen, wie oben gezeigt.Die Skripte
Das Setup besteht aus zwei Abschnitten; de "listen-" Skript, das die Benachrichtigungen abfängt:
Kopieren Sie das Skript in eine leere Datei und speichern Sie es unter
catch_notifs.sh
Das Skript, das die Ersatzbenachrichtigungen erstellt:
Kopieren Sie das obige Skript in eine leere Datei, speichern Sie es als (genau!)
message
(Keine Erweiterung) und machen Sie es ausführbar .Testen Sie das Skript mit dem Befehl (über ein Terminalfenster):
(Lass es laufen)
Sie können das Setup testen, indem Sie (in einem anderen Terminal) ausführen:
Wenn alles einwandfrei funktioniert, fügen Sie es zu Startanwendungen hinzu: Dash> Startanwendungen> Hinzufügen. Fügen Sie den Befehl hinzu:
Und es sollte funktionieren :)
quelle
Wie ich in den Kommentaren bemerkt habe,
notify-osd
ist es nicht sehr geeignet für umfangreiche Nachrichten und man solltezenity
stattdessen bevorzugen .Ein einfaches Beispiel für die Verwendung wäre das Laichen des
zenity
Dialogs übersubprocess.call([COMMAND,OPTIONS])
Sehr einfaches Beispiel. Bei etwas, bei dem der Exit-Status überprüft werden muss, z. B. bei Fragen, möchten Sie möglicherweise die
try - except - else
Struktur verwendenWenn Sie etwas Fortgeschritteneres möchten, sollten Sie eines der grafischen Toolkits wie PyQt oder Gtk erlernen.
quelle