Кнопка подключения гарнитуры в 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 функции для получения мультимедийных ключей.

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