Как я могу получить уведомление о numlock, как уведомление о томе в Gnome 3?

В GNOME 3 уведомление об изменении звука выглядит следующим образом:

Могу ли я получить такой же значок?

0 ответов

Для отображения уведомления, такого как громкость в Gnome 3, вы можете использовать gdbus (dbus-send не будет работать, потому что он не может передать параметры функции типа a{sv} (массив dict{строка: вариант}))

С участием gdbus уведомление о том выглядит следующим образом:

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>}"

Так что для чего-то вроде Numlock в уведомлении вы бы использовали:

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

Имена значков - это имена файлов значков из темы значков, которые используются без расширения. Иконки тем находятся в /usr/share/icons/ или же ~/.icons/, Так что для /usr/share/icons/Adwaita/scalable/devices/input-dialpad-symbolic.svg вы бы использовали 'input-dialpad-symbolic', Вы также можете указать значок по его полному пути, как '/home/user/.icons/Icon-Theme-Name/devices/symbolic/input-dialpad-symbolic.svg' если это не в теме значков в использовании.

Я обнаружил это, просматривая вызовы dbus с помощью dbus-monitor , Когда я уменьшил громкость, он напечатал это:

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 кажется такой же, как org.gnome.Shell так что оба --dest ':1.8' а также --dest 'org.gnome.Shell' работай.

Другие вопросы по тегам