Как я могу получить уведомление о numlock, как уведомление о томе в 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'
работай.