Кнопка подключения гарнитуры в gnome3
Как я могу сопоставить в gnome3 кнопку с моей гарнитуры Bluetooth?
Гном видит AcceleratorActivated
событие, когда я нажимаю это:
$ dbus-monitor --monitor
signal time=1525078944.868498 sender=:1.17 -> destination=:1.52 serial=2069 path=/org/gnome/Shell; interface=org.gnome.Shell; member=AcceleratorActivated
uint32 152
array [
dict entry(
string "device-id"
variant uint32 3
)
dict entry(
string "timestamp"
variant uint32 61966125
)
dict entry(
string "action-mode"
variant uint32 1
)
]
Но гном ничего не делает, кроме показа "action-unavailable-symbolic"
значок в экранном меню гнома (я использую темную тему гнома):
Следующий дбус ShowOSD
даже видно одновременно:
$ dbus-monitor --monitor
method call time=1525078944.869555 sender=:1.52 -> destination=:1.17 serial=246 path=/org/gnome/Shell; interface=org.gnome.Shell; member=ShowOSD
array [
dict entry(
string "icon"
variant string "action-unavailable-symbolic"
)
]
Кнопки гарнитуры не распознаются gnome в обычных настройках раскладки клавиатуры, доступных по адресу: Settings
> keyboard
> Add Custom Shortcut
Несмотря на то, что он прекрасно работает с клавишами клавиатуры, этот инструмент не распознает кнопки гарнитуры, когда я нажимаю их, поэтому я просто не могу использовать его для отображения кнопки гарнитуры.
То, что я хочу сделать, это запустить воспроизведение / пауза, когда я нажимаю кнопку гарнитуры. Есть идеи, как это сделать?
1 ответ
Проводы AcceleratorActivated
означает, что ключ уже сопоставлен с чем-либо; возможно, для встроенного элемента "воспроизведение / пауза". В противном случае он не был бы передан в gnome-shell при регистрации акселератора.
Если вы перезапустите gnome-shell во время просмотра шины, вы увидите вызов метода GrabAccelerators
содержащий все имена ключей и соответствующий method_return, содержащий идентификаторы ускорения. При этом вы можете расшифровать идентификатор из AcceleratorActivation, например: 152
в вашем случае вернемся к комбинации клавиш. (Очень вероятно, что система уже распознает вашу кнопку как XF86AudioPlay
, И GNOME уже имеет отображение по умолчанию для "XF86AudioPlay ⇒ воспроизведение / пауза через MPRIS".)
В этом случае ∅ OSD отображается, если не работает ни MPRISv2-совместимый проигрыватель, на который gnome-shell мог пересылать событие, ни проигрыватель, использующий старые специфичные для GNOME функции для получения мультимедийных ключей.