如何获取像 Gnome 3 中的音量通知那样的数字锁定通知?

如何获取像 Gnome 3 中的音量通知那样的数字锁定通知?

在 GNOME 3 中,音频变化通知如下所示:

我可以得到像它一样的大写锁定或数字锁定图标吗?

答案1

要显示类似 Gnome 3 中的音量通知,您可以使用gdbus(dbus-send不起作用,因为它无法传递类型的函数参数a{sv} (字典数组{字符串:变量}))

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'有效。

相关内容