A API de notificação tem um meio de especificar o ID de uma notificação atual que deve ser atualizada em vez de criar um novo pop-up, mas notify-send
não fornece isso. Se você estiver disposto a usar uma pequena quantidade de python, poderá recuperar o ID de uma notificação quando fizer isso e, em seguida, tentar atualizar esse id posteriormente. Coloque o seguinte código python2 em um arquivo em um diretório que esteja em seu PATH, digamos mynotify-send
e do 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()
Você deve instalar python-gobject
também. Quando você corre
mynotify-send -m 'message 1'
deve aparecer a notificação, mas também imprimir um id no stdout. Geralmente, esse é apenas um pequeno número que conta o número de notificações, por exemplo, 6
. Você pode então alterar a mensagem no popup existente, adicionando este id:
mynotify-send --id 6 -m 'message 2'
Você pode fazer isso enquanto o pop-up existir. Depois que o pop-up desaparecer, a próxima mensagem receberá um novo ID, por exemplo, 7
, que o programa imprime, e você precisará usá-lo em mensagens posteriores. Então, basicamente, em um shell script, você só se lembraria da saída do programa e a reutilizaria a cada vez.