Bookmark: Tombol tutup pada notify-osd?
ref:
Konsep-konsep yang telah terbukti, bash
solusi grafiti pop-up OSD "cacat" dipahami dan ditetaskan sebagai:
dbus-monitor "interface='org.freedesktop.Notifications'" | \
grep --line-buffered "member=Notify" | \
sed -u -e 's/.*/killall notify-osd/g' | \
bash
Ini dapat dijalankan di terminal atau sebagai tugas latar belakang - hentikan dan pop-up resume grafiti.
OP menyatakan "Tidak, saya tidak bisa menonaktifkannya". Jika dengan ini berarti bahwa sistem notifikasi TIDAK untuk dinonaktifkan oleh masalah sulit, maka solusi ini konsisten dengan itu. Sistem masih utuh. Jika itu berarti masalah sulit tidak tahu bagaimana melakukannya, maka sekali lagi solusinya relevan.
Detail dijelaskan di bawah baris. Yang paling utama adalah menyematkan segala sesuatu pada DBus, untuk secara langsung memohon
qdbus org.freedesktop.Notifications \
/org/freedesktop/Notifications \
org.freedesktop.Notifications.CloseNotification(uint id)
Solusi dasar yang sangat, sangat, sangat naif, yang lebih merupakan bukti konsep daripada praktis, pada dasarnya "melumpuhkan" notify-osd
(atau setidaknya efeknya). Jangan lupa untuk menghentikannya saat melakukan pengujian! oleh ETX'ng dengan <ctrl> -C atau menutup jendela terminal dll. Ia melakukan tugasnya tetapi tidak terlalu pragmatis! karena sayangnya pekerjaan lain menderita berusaha untuk melakukan ...
while true; do killall notify-osd; done
(untuk "mendengar" aktivitas yang relevan, Anda mungkin ingin " grep
keluar"
notify-osd: no process found ....
)
Uji dengan menjalankannya di jendela terminal dan dari jendela terminal lain coba lakukan:
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"
Hentikan proses pertama dan coba lagi pesan tersebut.
Mungkin notify-osd
indikator untuk unity-panel-service
bisa memohon killall notify-osd
. Tombol tutup bertitik panas tidak akan (& tidak bisa!) Ada di jendela notifikasi tetapi akan tersedia di panel indikator. Ini sepenuhnya analog dengan konsep yang sama yang dimiliki Unity untuk windows. Penggunaan bilah atas untuk penutupan notifikasi mirip dengan cara Unity mengasingkan menu jendela dengan kotak dekat, mini, maksimal ke bilah menu atas.
Solusi yang benar-benar elegan akan memiliki indikator muncul ketika aktivitas DBus untuk notify-osd
manifes dan menghilang ketika tidak ada pemberitahuan yang tertunda.
Mungkin juga mengatasi masalah notifikasi yang ditumpuk - hanya satu yang dapat dilihat pada satu waktu dan jika beberapa notifikasi sedang menunggu, masing-masing harus menguap sebelum muncul berikutnya - biasanya tidak dapat dilihat secara bersamaan.
DBus-monitor
'ng dari notify-osd
antarmuka pemberitahuan namun akan memberikan pengakuan segera tertunda pemberitahuan bahkan jika ada satu sudah menunjukkan. (DAN jika killall notify-osd
dikeluarkan segera - presto poof!)
Pilih Semua, Seret & Jatuhkan ke jendela terminal tes berikut:
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"
sekarang lakukan hal yang sama dengan 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"
Solusi killall notify-osd
yang disarankan akan dipicu ketika DBus monitor
mendeteksi aktivitas grafiti pop-up OSD.