“Bildir-gönder” öğesinin istiflenmesini önleme


2

"Notify-send" ile masaüstü bildirimlerini görüntülemek için ses seviyesini artırma düğmesine basıldığında bu betiği yazdım.

düğmesine basıldığında:
notify-send "Current volume 'pamixer --get-volume'"

Sorunlar, bildirimlerin istiflenmesi gibi. görüntü tanımını buraya girin

Bildirimlerin istiflenmesini önlemenin ve en yeni bildirimi görüntülemenin bir yolu var mı?


Bu, bildirimlerin ne aldığına ve görüntülendiğine bağlıdır. Hangi masaüstü ortamını kullanıyorsunuz?
Gilles

Merhaba! Dunst ile birlikte i3wm kullanıyorum.
Dankata

Yanıtlar:


2

Bildirim api'sinin, yeni bir açılır pencere oluşturmak yerine güncellenmesi gereken güncel bir bildirimin kimliğini belirtmek için bir aracı vardır, ancak notify-sendbunu sağlamaz. Az miktarda python kullanmaya istekliyseniz, yaptığınız zaman bir bildirimin kimliğini alabilir ve daha sonra bu kimliği güncellemeyi deneyebilirsiniz. Aşağıdaki python2 kodunu PATH'inizde bulunan bir dizine bir dosyaya koyun, söyleyin mynotify-sendve yapın chmod +x mynotify-send:

#!/usr/bin/python
import argparse, gi
#gi.require_version('Notify', '0.7')
from gi.repository import Notify

def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument('-m', '--message', default="body")
    parser.add_argument('-i', '--id', type=int)
    return parser.parse_args()

def run(myid,message):
    Notify.init("mynote")
    obj = Notify.Notification.new("my summary", message)
    obj.set_timeout(60*1000)
    if myid:
        obj.set_property('id', myid)
        obj.show()
        newid = obj.get_property('id')
        print newid
    else:
        obj.show()
        myid = obj.get_property('id')
        print myid

def main():
    options = parse_args()
    run(options.id, options.message)

main()

Siz de yüklemelisiniz python-gobject. Kaçtığında

mynotify-send -m 'message 1'

bildirimi açar, ancak ayrıca stdout'a bir kimlik yazdırır. Genellikle bu, bildirim sayısını sayan küçük bir sayıdır, örneğin 6. Daha sonra bu kimliği ekleyerek mevcut açılan penceredeki iletiyi değiştirebilirsiniz:

mynotify-send --id 6 -m 'message 2'

Pop-up mevcut olduğu sürece bunu yapabilirsiniz. Açılır pencereden çıktıktan sonra bir sonraki mesaj, örneğin 7programın yazdırdığı yeni bir kimliği alır ve bunu daha sonraki mesajlarda kullanmak zorunda kalırsınız. Temel olarak bir kabuk betiğinde programın çıktısını hatırlar ve her seferinde yeniden kullanırsınız.

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.