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-send
bunu 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-send
ve 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 7
programı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.