Var olan bir bildirimi hemen değiştirmek için 'bildirim-gönder' özelliğini nasıl kullanırım?

17

Masaüstünde bir bildirim göstermek için notify-send kullanıyorum ve ardından farklı bir bildirim göstermek için tekrar kullandığımda, ikincisinin yalnızca sonra ilkini kaybettiğini fark ettim. .

Mevcut bir bildirimi farklı biriyle hemen değiştirmek için notify-send almanın bir yolu var mı?

    
sordu ish 10.07.2012 07:54

3 cevap

13

Şunları yapabilirsiniz, ancak bunu yapmak için yamalı libnotify kullanmalısınız

notify-send , mevcut bildirimleri zaman aşımına uğramadan (veya ortadan kaybolmadan) değiştirme yeteneğine sahip değil. Bu bir bilinen hatadır . Ancak, hata raporunda bir yorum yapan kişi, düzeltmek için bir düzeltme eki gönderdi o.

Yamalı libnotify-bin 'i PPA

' dan yükleme

PPA'mdaki değiştirmelere izin veren libnotify-bin paketinin yamalı bir sürümünü oluşturdum. Şu anda sadece Ubuntu 12.04 içindir, ancak şu anda desteklenen başka bir sürüm için gerekiyorsa, lütfen bir yorum gönderin ve bunu kullanıma sunmak için elimden geleni yapacağım.

Yüklemek için bir terminal açın ve:

sudo apt-add-repository ppa:izx/askubuntu
sudo apt-get update
sudo apt-get install libnotify-bin

Değiştirme yetenekleri nasıl kullanılır?

Yamalı notify-send , iki yeni anahtar, -p (veya - print-id ) ve -r (veya - replace-id ) içerir. ). % Co_de%, bunları şöyle açıklar:

  -p, --print-id                    Print the notification ID.
  -r, --replace-id=REPLACE_ID       The ID of the notification to replace.
  • --help ile, her -p bir kimlik N (sayı / tamsayı) döndürecektir.
  • notify-send ile başka bir notify-send öğesi daha önce hemen bildiriminin yerini alacak.
  • Örneğin, bash için kimliği -r N ile şu şekilde kaydedebilirsiniz:

    NID=$(notify-send -p "MESSAGE-1")
    

    ve ardından şununla değiştirin:

    notify-send -r $NID "MESSAGE-2"
    
  • -r değişkeni başlatıldığı sürece bir komut dosyasında -p ve -r komutlarını yinelemeli olarak kullanabilirsiniz. başlangıçta 0'a.

  • İşte, yarım saniye aralıklarla 0 ile 100 arasında sayılan bildirimleri gösteren basit bir komut dosyası:

    #!/bin/bash
    NID=0
    for i in {0..100..10}    do       NID=$(notify-send -p -r $NID $i)       sleep 0.5    done
verilen cevap ish 10.07.2012 07:54
10

X-ref:
Bildirim-osd'deki yeni bir bildirimin, daha önce çıkmak için beklemeden görünmesi nasıl zorlanır?

yamalar olmadan basitçe yapabilirsiniz

#!/bin/bash

for i in {0..100..10}
    do
          killall notify-osd
          notify-send "testing" $i
          sleep 1
    done

Yer imi:
Hemen bildirim yapmak için 'bildirim gönder' özelliğini nasıl kullanabilirim?

Hata bildirimi gönderir (2592): İşlem yapılmasına izin verilmez. Bu ne anlama geliyor?

Bu, ayrıcalıkların yetersiz olması anlamına gelebilir:

sudo killall notify-osd
    
verilen cevap george rowell 19.09.2012 05:37
6

Önceki onaylama bildirimlerinin yerini alacak bir "onay" bildirimi oluşturmak için "senkronize" ipucunu kullanabilirsiniz. Örneğin:

notify-send "Message" -h string:x-canonical-private-synchronous:anything

"x-canonical-private-synchronous" ipucu bu dokümanda belirtilmiştir. Bir ipucu belirtmek için -h type:name:value kullanın. Buradaki string , name x-canonical-private-synchronous şeklindedir ve değer istediğiniz her şey olabilir.

İlk bildiriminiz bu ipucu ve ile oluşturulursa, ikincisi de ikinci olur, ikincisi hemen ilkini değiştirir. (Dokümantasyondaki "onay balonları" sütunundaki Animasyonlar ve Süreçler konusuna bakın.)

    
verilen cevap Mark L 12.01.2017 21:14

Etiketlerdeki diğer soruları oku