web-dev-qa-db-fra.com

Faire une nouvelle notification avec son icône et barre

Probablement cette question a déjà été répondue quelque part, mais je ne pouvais pas la trouver.

La situation: je suis sur Ubuntu 15.10, sur un ordinateur portable.
J'ai un système de haut-parleurs Bluetooth secondaire sur lequel je redirige certaines sorties (principalement la musique).

Je peux contrôler le volume avec pactl avec

pactl -- set-sink-volume bluez_sink.00_18_91_65_D8_6D +5%
pactl -- set-sink-volume bluez_sink.00_18_91_65_D8_6D -5%

et ayant associé cela à certains raccourcis clavier, je peux l'augmenter et le diminuer comme s'il était local.

Cela fonctionne bien mais, contrairement à la sortie principale (la carte son interne), l’utilisation de cette commande ne génère pas de notification avec le niveau de volume réel.

Alors, comment puis-je produire la notification avec l'icône changeante et la barre du volume, comme le fait Ubuntu?

Devrais-je utiliser notify-send? Avec quels paramètres?
Il ne devrait pas s'agir d'une notification "normale", car elle doit "rester" là lorsque le volume change et adapter la barre ...

6
dadexix86

Oui, cela devrait faire l'objet d'une notification spéciale:

gdbus call --session --dest org.freedesktop.Notifications \
  --object-path /org/freedesktop/Notifications \
  --method org.freedesktop.Notifications.Notify \
    'gnome-settings-daemon' \
    0 \
    'notification-audio-volume-medium' \
    ' ' \
    '' \
    [] \
    "{'x-canonical-private-synchronous': <'volume'>, 'value': <24>}" \
    1
  1. Trouvé en regardant dbus-monitor:

    method call time=1447796042.858910 sender=:1.11 -> destination=:1.96 serial=216 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify
       string "gnome-settings-daemon"
       uint32 0
       string "notification-audio-volume-medium"
       string " "
       string ""
       array [
       ]
       array [
          dict entry(
             string "x-canonical-private-synchronous"
             variant             string "volume"
          )
          dict entry(
             string "value"
             variant             int32 48
          )
       ]
       int32 -1
    
  2. Ensuite, écrivez mon propre appel en utilisant:

  3. Les icônes disponibles sont:

    find /usr/share/notify-osd/icons/hicolor/scalable/status/ -name "notification-audio-volume-*" -exec basename {} .svg \;

    notification-audio-volume-low
    notification-audio-volume-off
    notification-audio-volume-medium
    notification-audio-volume-muted
    notification-audio-volume-high
    
6
user.dz