web-dev-qa-db-fra.com

Comment puis-je obtenir une notification numlock telle que la notification de volume dans Gnome 3?

Dans GNOME 3, la notification de modification audio ressemble à ceci:

Est-ce que je peux avoir une icône de verrouillage des majuscules ou des verrous numériques?

2
Tim

Pour afficher une notification comme celle du volume 1 dans Gnome 3, vous pouvez utiliser gdbus (dbus-send ne fonctionnera pas car il ne peut pas transmettre de paramètres de fonction de type a{sv}(array de dict {string: variant}))

Avec gdbus, la notification de volume ressemble à ceci:

gdbus call --session --dest 'org.gnome.Shell' --object-path '/org/gnome/Shell' --method 'org.gnome.Shell.ShowOSD' "{'icon': <'audio-volume-high-symbolic'>, 'label': <'Line-Out'>, 'level': <90>}"

Donc, pour quelque chose comme Numlock sur notification, vous utiliseriez:

gdbus call --session --dest 'org.gnome.Shell' --object-path '/org/gnome/Shell' --method 'org.gnome.Shell.ShowOSD' "{'icon': <'input-dialpad-symbolic'>, 'label': <'Numlock On'>}"

Les noms d'icônes sont les noms des fichiers d'icônes du thème d'icônes utilisé sans l'extension. Les thèmes des icônes se trouvent dans /usr/share/icons/ ou ~/.icons/. Donc, pour le /usr/share/icons/Adwaita/scalable/devices/input-dialpad-symbolic.svg, vous utiliseriez 'input-dialpad-symbolic'. Vous pouvez également spécifier icon par son chemin complet, tel que '/home/user/.icons/Icon-Theme-Name/devices/symbolic/input-dialpad-symbolic.svg' s'il ne figure pas dans le thème d'icônes utilisé.

La façon dont j'ai découvert cela est de regarder les appels Dbus en utilisant dbus-monitor. Lorsque j'ai abaissé le volume, il a imprimé ceci:

method call time=1563905341.664155 sender=:1.34 -> destination=:1.8 serial=149 path=/org/gnome/Shell; interface=org.gnome.Shell; member=ShowOSD
array [
  dict entry(
     string "icon"
     variant             string "audio-volume-high-symbolic"
  )
  dict entry(
     string "label"
     variant             string "Line Out"
  )
  dict entry(
     string "level"
     variant             int32 94
  )
]

destination=:1.8 semble être identique à org.gnome.Shell de sorte que --dest ':1.8' et --dest 'org.gnome.Shell' fonctionnent.

2
FieryRider