Notify-send zaman aşımını yok sayar mı?


47

Belki yanlış bir şey yapıyorum, ama komutları yapmamalı (ayrı çalıştır)

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

Farklı zaman aşımına mı sahipsiniz? İlki neredeyse anlık, ikincisi 1 saniye ve üçüncü 100 saniye sürüyor. Her durumda yaklaşık altı saniye sürüyor gibi görünüyor.

Davranış etrafında bir yolu var mı? Geliştiriciler bunu hata yerine "özellik" olarak etiketlerken bazı alternatifler istiyorum.


1
evet doğruladılar mı
Ringtail

Benim için XFCE4 kullanarak beklendiği gibi çalışır.
Grumbel

@BlueXrider benim yaptığım gibi aynı sorunu görüyor musunuz? Öyleyse, hangi sürümü kullanıyorsunuz?
Hook

Test kodunun doğru çalıştığını onayladım. Belirtilen şekilde zaman aşımına uğradım.
Ringtail

6
Alternatif olarak kullanabilirsiniz notify-send "Text Here" ; sleep 3 ; killall notify-osd( sleep 33 saniye sonra sona erme örneğidir (aslında öldürme))!
Pandya

Yanıtlar:


44

Bu bilinen bir hatadır: https://bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/390508

(Bakımcı tarafından 'tasarım kararı' olarak değerlendirilir.)


3
Bu gerçekten bir hata değil. Bu bir tasarım kararı.
Eren Tantekin,

68
Yanlış bir tasarım kararı bir hata olabilir.
Boris Bukh

23
Yazılım başka bir şeyi yaparken bir şeyi yapmayı iddia ettiğinde, bu bir hatadır. Geliştiriciler bizim hata olarak kabul etmemizi istemiyorsa, onun gibi davranmadığını iddia etmeyin.
hytromo 24:12

10
Bu bir özellik değil. Bu bir böcek! Ön cam sileceklerini açmak için bir manivela sağladığınızda ve çalışmadığında, kırılmış demektir.
Matt H

3
@ChristopherDone Saygılarımla, bu bir hata. Notify-send (notify-osd'un bir parçası) yardımında şöyle yazıyor: notify-send --help | grep timeout -t, --expire-time = TIME Bildirimin sona ereceği zaman aşımını milisaniye cinsinden belirtir. Bu, aracın kullanıcısı için birincil arayüz. Bu birincil arayüz kullanıcıya aittir ve bu nedenle bu bir hatadır. Bakış açınıza bağlı olarak, yardım metninde ya da uygulamada hata var, ama kesinlikle bir hata.
Michael Sparks

21

Yukarıdaki yayınlardan birinde belirtildiği gibi, bu özelliğe izin vermemek için bir tasarım kararı var. Neyse ki, sizin için, diğer insanlar da aynı fikirde değil ve bir PPA kurdular ve bu kararı sisteminiz için de tersine çevirebilirsiniz.

Sorununuzu sadece çözmek için:

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

İsteğe bağlı

Gönder-bildir'e şu anda sahip olduğunuzdan daha fazla özellik eklemek için:

Ubuntu 16.04 tarihinden itibaren:

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

9.10-14.10 sürümleri için:

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

Yukarıdaki çözüm hakkında daha fazla bilgi için bu makaleyi okuyun:

Ubuntu için Yapılandırılabilir Bildirim Bubbles


Ne yazık ki, depo artık paketi sağlamaz, E: Failed to fetch http://ppa.launchpad.net/amandeepgrewal/notifyosdconfig/ubun‌​tu/dists/xenial/main‌​/binary-amd64/Packag‌​es 404 Not Found(ilgili: askubuntu.com/questions/50/… )
phil294

@Blauhirn: Ben paketin geliştiricisi değilim. Lütfen geliştirici ile iletişim kurun
Fabby

@Blauhirn: 16.04'ten itibaren cevap güncellendi
Fabby 19

Bu çalıştı! Başkası için netleştirmek gerekirse, notify-osd'un güncellenmiş sürümünü de yüklemelisiniz. yani 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 Çok teşekkürler!
Michael Sparks

1
@MichaelSparks değişti upgradeetmek dist-upgrade. Notify-osd zaten kurulu olduğu ve mutlaka yenilenmesi gereken şeylerle ilgilenmelidir.
Fabby

4

Bu, ev sahibi terminal ortamında diskalifiye edilmeden yerleşik sözleşmelerin kasıtlı olarak uygulandığı bir çelişki idi. yani. notify-sendartık iyi kurulmuş, beklenen ve belgelenen işlevselliği tehlikeye attığından, artık mevcut olmamalı, bu nedenle bunun yerine yeni bir komut notify-graffitimevcut olmalıdır - Ne ???? Bir saniye bekleyin ... "geleneksel" komut adı yazımını kullanan tüm komut dosyaları tehlikeye girecek!?! komut isminin nasıl yazıldığına dair kuralları değiştirerek?!?! - hmmm Bu felsefe, Birlik masaüstü terminal arayüzü tarafından benimsenen istisnai olarak, paradoksal olarak ikiyüzlüdür.

Her iki şekilde de yapılamaz - yani bazı sözleşmeler korunur. Bir komutun adı ve henüz diğerleri değil, komutun belgelendiği şekilde işlevselliği. Eğer işlevsellikten ödün verilmişse, o zaman da "deneyim" kullanıcısının bütünlüğünü, konvansiyonunu, tutarlılığını vb. Korumak için komut adı mı yoksa bu kullanıcının "hayal kırıklığı", "sıkıntı", "tahriş" olduğunu belirtmelisiniz. ..

ref:

Yer imi:
Notify-send zaman aşımına uğramaz mı?


"Sona ermeyen_notifications" ve "Notification | Ubuntu App Developer" bağlantıları koptu (ya da referansta bulundukları web sayfası).
Keith Thompson,

2

Notify -send yerine önceden gönderilen bildirimleri kapatmanızı veya değiştirmenizi sağlayan bir değiştirme yerine notify-send.sh adlı küçük bir komut dosyası vardır .

Düzenleme: @ Glutanimate belirtildiği gibi, bu komut dosyası varsayılan olarak sona erme süresini destekler.

Sonunda çalışmak için zaman aşımına uğrayamadım, bu yüzden 2 saniye zaman aşımına uğrayan bir bildirim göndermek için oldukça sert bir yöntem kullandım :

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


Bu senaryo harika! Burada paylaştığınız için teşekkürler. Artık notify-send'in orijinal CLI argümanları ile tamamen uyumlu görünüyor. Yani: 2 sn zaman aşımı ile bir bildirim gönderebilirsiniz notify-send.sh -t 2 "Hello World!". Komut dosyasını yerel $ PATH dizinime bağladım ve notify-send olarak yeniden adlandırdım. Artık bu subpar not-osd uygulamasıyla uğraşmak yok!
Glutanimate

Oh cool @Glutanimate! Bize bildirdiğiniz için teşekkür ederiz.
NiMa Thr

0

Tarçın masaüstü ortamını kullananlar için etkinleştirilebilecek bir ayar vardır:

Bildirimler> Zaman aşımına ulaşıldıktan sonra bildirimleri kaldır


0

Bu milisaniye cinsindendir. XUbuntu 16.04 (Ubuntu XFCE) üzerinde test ettim

notify-send -t 3000 "test"

tam 3 saniye

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.