1

Как мне связать в gnome3 кнопку с моей гарнитуры Bluetooth?

Gnome видит событие 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
      )
   ]

Но gnome ничего не делает, кроме показа значка "action-unavailable-symbolic" в экранном меню gnome (я использую темную тему gnome):

Следующее dbus 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 ответ1

1

Видение AcceleratorActivated означает, что ключ уже сопоставлен с чем-либо; возможно, для встроенного элемента «воспроизведение / пауза». В противном случае он не был бы передан в gnome-shell при регистрации акселератора.

Если вы перезапустите gnome-shell во время наблюдения за шиной, вы увидите вызов метода для GrabAccelerators содержащий все имена ключей, и соответствующий method_return, содержащий идентификаторы акселератора. При этом вы можете расшифровать идентификатор из AcceleratorActivation, например 152 в вашем случае, обратно в комбинацию клавиш. (Весьма вероятно, что система уже распознает вашу кнопку как XF86AudioPlay . И GNOME уже имеет отображение по умолчанию для «XF86AudioPlay ⇒ воспроизведение / пауза через MPRIS».)

В этом случае ∅ OSD отображается, если не работает ни MPRISv2-совместимый проигрыватель, на который gnome-shell мог переслать событие, ни проигрыватель, использующий старые специфичные для GNOME функции для получения мультимедийных ключей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .