Estou tentando atualizar uma notificação anterior (que exibe o brilho da tela depois de ser alterada usando uma barra de progresso) com o gdbus, já que o notify-send não suporta a atualização.
Anteriormente, eu usei uma solução alternativa ao eliminar a notificação anterior, mas ela faz com que a notificação desapareça e reapareça, em vez de atualizar a barra de progresso:
#!/bin/bash
for i in {0..100..10}
do
kill $(pgrep ^xfce4-notifyd$)
notify-send "Brightness" -h int:value:$(xbacklight -get) -h string:synchronous:volume -i weather-clear -t 1
done
Eu tentei dbus-send, mas nenhuma notificação apareceu, mesmo se eu remover a parte de dicas. Depois de algum googling, descobri o gdbus e consegui que funcionasse, mas apenas sem sugestões.
Basicamente, aqui é onde eu tenho até agora com o gdbus:
#!/bin/bash
gdbus call --session --dest org.freedesktop.Notifications \
--object-path /org/freedesktop/Notifications \
--method org.freedesktop.Notifications.Notify \
brightness \
42 \
notification-display-brightness-full \
"Message" "Body" [] \
"{'value':i, 'name':'value', 'value':'$(xbacklight -get)'}" "{'type':'string', 'name':'synchronous', 'value':'volume'}" \
1
No entanto, estou preso a este erro:
Error parsing parameter 7 of type 'a{sv}': expected value:
{'value':i, 'name':'value', 'value':'0.000000'}
^
Alguém pode me ajudar com a sintaxe de dicas de notificação enviadas pelo gdbus?
Eu li em algum lugar que eu posso usar alguma versão personalizada de remeter-enviar, no entanto, eu não gosto da idéia de introduzir binários não oficiais no meu sistema estável.
Btw, estou usando o xfce4-notifyd no xubuntu.
ATUALIZAÇÃO:
Eu tentei ter menos cabeça de porco e tentei o módulo dbus do Python para o trabalho. E mais uma vez, estou preso a sugestões. Só funcionou se eu remover as dicas. Aqui está o novo código:
#!/usr/bin/env python3
"""Creates a Notification pop-up bubble"""
import dbus
item = "org.freedesktop.Notifications"
path = "/org/freedesktop/Notifications"
interface = "org.freedesktop.Notifications"
app_name = "brightness"
id_num_to_replace = 0
icon = "weather-clear"
title = "Message"
text = "Body"
actions_list = ''
hint = '"{'type':i, 'name':'value', 'value':'$(xbacklight -get)'}" "{'type':'string', 'name':'synchronous', 'value':'volume'}"'
time = 5000 # Use seconds x 1000
bus = dbus.SessionBus()
notif = bus.get_object(item, path)
notify = dbus.Interface(notif, interface)
notify.Notify(app_name, id_num_to_replace, icon, title, text, actions_list, hint, time)
E o erro:
File "/home/pygeek03/bin/brightness.py", line 13
hint = '"{'type':i, 'name':'value', 'value':'$(xbacklight -get)'}" "{'type':'string', 'name':'synchronous', 'value':'volume'}"'
^
SyntaxError: invalid syntax