Beri tahu-kirim abaikan batas waktu?

47

Mungkin saya melakukan sesuatu yang salah, tetapi tidak seharusnya perintah (berjalan secara terpisah)

notify-send -t 1 "test"
notify-send -t 1000 "test"
notify-send -t 10000 "test"

Punya timeout yang berbeda? Yang pertama hampir instan, yang kedua mengambil 1 detik dan yang ketiga 100 detik. Dalam semua kasus sepertinya butuh sekitar enam detik.

Apakah ada cara mengatasi perilaku? Karena pengembang memberi label ini sebagai "fitur" alih-alih bug, saya ingin beberapa alternatif ...

Doyan
sumber
1
ya mereka saya konfirmasi
Ringtail
Bagi saya ini berfungsi seperti yang diharapkan menggunakan XFCE4.
Grumbel
@BlueXrider Anda melihat masalah yang sama seperti yang saya lakukan? Jika demikian, versi apa yang Anda gunakan?
Hooked
Saya mengkonfirmasi kode tes berfungsi dengan benar. Saya mendapatkan waktu menyendiri sesuai petunjuk.
Ringtail
6
Atau Anda dapat menggunakan notify-send "Text Here" ; sleep 3 ; killall notify-osd(di mana sleep 3contoh kedaluwarsa (sebenarnya membunuh) setelah 3 detik)!
Pandya

Jawaban:

44

Ini adalah bug yang dikenal: https://bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/390508

(Ini dianggap sebagai 'keputusan desain' oleh pengelola.)

Boris Bukh
sumber
3
Ini bukan bug. Ini keputusan desain.
Eren Tantekin
68
Keputusan desain yang salah bisa jadi bug.
Boris Bukh
24
Ketika perangkat lunak mengklaim melakukan satu hal sementara melakukan hal lain, itu adalah bug. Jika pengembang tidak ingin kami menganggapnya sebagai bug, maka jangan mengklaim bahwa itu bertindak seperti itu tidak.
hytromo
10
Itu bukan fitur. Itu bug! Ketika Anda memberikan tuas untuk menghidupkan wiper kaca depan dan itu tidak berfungsi, maka itu rusak.
Matt H
3
@ChristopherDone Dengan hormat, ini adalah bug. Bantuan untuk notify-send (bagian dari notify-osd) mengatakan: notify-send --help | grep timeout -t, - expire-time = TIME Menentukan batas waktu dalam milidetik untuk mengakhiri pemberitahuan. Itulah antarmuka utama untuk pengguna alat ini. Antarmuka utama itu terletak pada pengguna dan karenanya ini adalah bug. Entah itu bug dengan teks bantuan atau implementasinya, tergantung pada perspektif Anda, tapi itu pasti bug.
Michael Sparks
21

Seperti disebutkan dalam salah satu posting di atas, ada keputusan desain untuk melarang fitur ini. Untungnya bagi Anda, orang lain juga tidak setuju dan telah membuat PPA dan Anda dapat membalikkan keputusan ini untuk sistem Anda juga.

Untuk menyelesaikan masalah Anda cukup:

sudo add-apt-repository ppa:leolik/leolik 
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install libnotify-bin
pkill notify-osd

Pilihan

Untuk menambahkan lebih banyak fitur ke notifikasi kirim daripada yang Anda miliki saat ini:

Dari Ubuntu 16.04 dan selanjutnya:

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt update
sudo apt install notifyosdconfig

Untuk versi 9.10-14.10:

sudo add-apt-repository ppa:amandeepgrewal/notifyosdconfig
sudo apt-get update
sudo apt-get install notifyosdconfig

Untuk informasi lebih lanjut tentang solusi di atas, baca artikel ini:

Gelembung Notifikasi yang Dapat Dikonfigurasi untuk Ubuntu

Fabby
sumber
Sayangnya, repositori tidak menyediakan paket lagi, dengan mengatakan E: Failed to fetch http://ppa.launchpad.net/amandeepgrewal/notifyosdconfig/ubun‌​tu/dists/xenial/main‌​/binary-amd64/Packag‌​es 404 Not Found(terkait: askubuntu.com/questions/50/… )
phil294
@ Belauhirn: Saya bukan pengembang paket tersebut. Silakan hubungi pengembang
Fabby
@ Blauhirn: jawaban yang diperbarui untuk 16,04 dan seterusnya
Fabby
Ini berhasil! Sebagai klarifikasi untuk orang lain, Anda juga harus menginstal versi notifikasi-osd yang diperbarui. yaitu sudo add-apt-repository ppa:leolik/leolik:; sudo add-apt-repository ppa:amandeepgrewal/notifyosdconfig; sudo apt-get update; sudo apt install notify-osd # Updates to actually useful version; sudo apt install notifyosdconfig Terimakasih banyak!
Michael Sparks
1
@MichaelSparks diubah upgrademenjadi dist-upgrade. Itu harus mengurus hal-hal karena notify-osd sudah diinstal dan harus ditingkatkan pasti.
Fabby
4

Ini adalah pelanggaran yang dilakukan secara sengaja terhadap konvensi yang telah mapan tanpa didiskualifikasi di lingkungan terminal tuan rumah. yaitu. notify-sendseharusnya tidak ada lagi karena kompromi dengan fungsi yang diharapkan dan didokumentasikan dengan baik, jadi alih-alih, perintah baru notify-graffitisekarang harus ada - Apa ???? Tunggu sebentar ... semua skrip yang menggunakan ejaan nama perintah "konvensional" akan dikompromikan!?! dengan mengubah konvensi tentang bagaimana nama perintah dieja?!?! - hmmm Filosofi ini luar biasa, secara paradoks munafik sebagaimana dianut oleh antarmuka terminal desktop Unity.

Ini tidak dapat dilakukan dengan dua cara - mempertahankan beberapa konvensi yaitu. nama perintah dan bukan yang lain, fungsi perintah seperti yang didokumentasikan. Jika fungsi ini akan dikompromikan maka demikian juga seharusnya nama perintah untuk menjaga integritas, konvensionalitas, konsistensi, dll dari "pengalaman" pengguna, atau apakah pengguna "frustrasi", "jengkel", "jengkel",. ..

ref:

Bookmark:
Beri tahu-kirim abaikan batas waktu?

George Rowell
sumber
Tautan "Non-expiring_notifications" dan "Notification | Ubuntu App Developer" rusak (atau lebih tepatnya halaman web yang dimaksud).
Keith Thompson
2

Ada skrip kecil yang berguna notify- send.sh sebagai pengganti drop-in untuk notifikasi-send yang memungkinkan Anda untuk menutup atau mengganti notifikasi yang dikirim sebelumnya.

Sunting: seperti yang ditunjukkan @Glutanimate, skrip ini mendukung waktu kedaluwarsa secara default.

Saya tidak bisa mendapatkan waktu kedaluwarsa untuk bekerja pada akhirnya, jadi saya menggunakan cara yang agak rumit untuk mengirim pemberitahuan dengan batas waktu 2 detik seperti ini:

notify-send.sh --print-id test | xargs -I {} bash -c "sleep 2 && notify-send.sh --close={}" &

NiMa Thr
sumber
Script ini bagus! Terima kasih untuk berbagi di sini. Sepertinya itu sekarang sepenuhnya kompatibel dengan argumen CLI asli notify-send. Yaitu: Anda dapat mengirim pemberitahuan dengan batas waktu 2 detik melalui notify-send.sh -t 2 "Hello World!". Saya telah menyinkronkan skrip ke direktori $ PATH lokal saya dan menamainya untuk memberitahukan-kirim. Tidak ada lagi berurusan dengan implementasi notifikasi-osd di bawah standar!
Glutanimate
Oh keren @Glutanimate! Terima kasih telah memberi tahu kami tentang itu.
NiMa Thr
0

Bagi mereka yang menggunakan lingkungan desktop Cinnamon, ada pengaturan yang dapat diaktifkan:

Pemberitahuan> Hapus pemberitahuan setelah batas waktu tercapai

Shai Coleman
sumber
0

Ini dalam milidetik. Saya menguji pada XUbuntu 16.04 (Ubuntu XFCE)

notify-send -t 3000 "test"

tepat 3 detik

Pawel Cioch
sumber