Segnalibro: pulsante Chiudi su notify-osd?
ref:
Concetti ben collaudati, la bash
soluzione "disabilitata" per graffiti pop-up OSD è concepita e tratteggiata come:
dbus-monitor "interface='org.freedesktop.Notifications'" | \
grep --line-buffered "member=Notify" | \
sed -u -e 's/.*/killall notify-osd/g' | \
bash
Questo può essere eseguito in un terminale o come attività in background: fermalo e riprendi i pop-up dei graffiti.
L'OP ha dichiarato "No, non posso disabilitarlo". Se con questo significa che il sistema di notifica NON deve essere disabilitato dal poser, allora questa soluzione è coerente con quella. Il sistema è intatto. Se significa che il poser non sa come farlo, allora di nuovo la soluzione è pertinente.
Dettagli spiegati di seguito. Il massimo sarebbe quello di incorporare tutto nel (nel?) DBus, per invocare direttamente
qdbus org.freedesktop.Notifications \
/org/freedesktop/Notifications \
org.freedesktop.Notifications.CloseNotification(uint id)
Una soluzione rudimentale molto, molto, molto ingenua, che è più una prova del concetto che pratica, essenzialmente "disabilita" notify-osd
(o almeno i suoi effetti). Non dimenticare di terminarlo al termine dei test! da ETX'ng con <ctrl> -C o chiudendo la finestra del terminale ecc. Fa il suo lavoro ma non molto pragmaticamente! poiché purtroppo altri lavori soffrono nel tentativo di fare il loro ...
while true; do killall notify-osd; done
(per "ascoltare" attività pertinenti che potresti voler " grep
eliminare"
notify-osd: no process found ....
)
Provalo eseguendolo in una finestra del terminale e da un'altra finestra del terminale prova a fare:
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"
Interrompere il primo processo e quindi riprovare a inviare i messaggi.
Forse un notify-osd
indicatore per unity-panel-service
potrebbe invocare killall notify-osd
. Il pulsante di chiusura hot spot non sarebbe (e non può!) Essere residente nella finestra di notifica ma sarebbe disponibile sul pannello degli indicatori. Questo è completamente analogo allo stesso concetto che Unity ha per Windows. L'uso della barra superiore per la chiusura delle notifiche è simile al modo in cui Unity esilia i menu della finestra con le caselle chiuse, mini e maxi nella barra dei menu in alto.
Una soluzione davvero elegante farebbe apparire l'indicatore quando l'attività DBus per i notify-osd
manifest e scomparire quando non ci sono notifiche in sospeso.
Potrebbe anche risolvere il problema delle notifiche sovrapposte : solo una può essere vista alla volta e se sono in attesa più notifiche ognuna deve evaporare prima che appaia la successiva, di solito non possono essere viste contemporaneamente.
DBus-monitor
L' notify-osd
interfaccia di notifica fornirà comunque un riconoscimento immediato delle notifiche in sospeso anche se ce n'è già una. (E se killall notify-osd
viene rilasciato immediatamente - presto poof!)
Seleziona Tutto, trascina e rilascia su una finestra del terminale i seguenti test:
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"
ora fai lo stesso con 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"
La killall notify-osd
soluzione suggerita verrà attivata quando DBus monitor
rileva l'attività dei graffiti a comparsa OSD.