botão de fone de ouvido de mapa no gnome3

1

Como posso mapear no gnome3 o botão do meu fone de ouvido bluetooth?

O Gnome vê um AcceleratorActivatedevento quando pressiono:

$ 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
      )
   ]

Mas o gnome não faz nada, exceto mostrar um "action-unavailable-symbolic"ícone no OSD do gnome (eu uso um tema escuro do gnomo):

insira a descrição da imagem aqui

O seguinte dbus ShowOSDé visto ao mesmo tempo:

$ 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"
      )
   ]

Os botões do auricular não são reconhecidos pelo gnome nas usuais configurações de mapeamento de teclado disponíveis em: Settings > keyboard > Add Custom Shortcut: embora ele funciona muito bem com as teclas do teclado mapeamento, botões do auricular não são detectados por esta ferramenta quando eu pressioná-los, então eu só não pode usar para mapear o botão do fone de ouvido.

O que eu quero fazer é acionar a reprodução / pausa quando pressiono o botão do fone de ouvido. Alguma idéia de como fazer isso?

Eric
fonte

Respostas:

1

Ver AcceleratorActivatedsignifica que a chave está mapeada para algo; possivelmente ao item "reproduzir / pausar" incorporado. Caso contrário, não teria sido submetido ao gnome-shell durante o registro do acelerador.

Se você reiniciar o gnome-shell enquanto assiste ao barramento, verá uma chamada de método para GrabAcceleratorsconter todos os nomes de chave e um method_return correspondente contendo IDs de aceleração. Com isso, você pode decifrar o ID do AcceleratorActivated, como 152no seu caso, de volta à combinação de teclas. (É muito provável que o sistema já reconheça seu botão como XF86AudioPlay. E o GNOME já possui um mapeamento padrão para "XF86AudioPlay ⇒ reproduzir / pausar via MPRIS".)

Nesse caso, o D OSD é mostrado se não houver um player compatível com MPRISv2 em execução para o qual o gnome-shell possa encaminhar o evento, nem um player que use as funções antigas específicas do GNOME para receber chaves de mídia.

gravidade
fonte
Você está certo, ele foi mapeado para um comando MPRIS e reproduz / pausa, conforme sugerido. Bem feito. De fato, funcionou imediatamente com o VLC, mas não com o outro player que eu estava usando. Obrigado!
Eric
Para aqueles que querem usar mpris com youtube, não há realmente apenas uma solução a partir de hoje: github.com/otommod/browser-mpris2
Eric