кнопка подключения гарнитуры в gnome3

325
Eric

Как мне связать в 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 ) ] 

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

enter image description here

Следующее 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" ) ] 

Кнопки гарнитуров не распознается гномом в обычных настройках отображения клавиатуры, доступных по адресу: Settings > keyboard > Add Custom Shortcut: хотя он прекрасно работает с ключами раскладки клавиатуры, кнопки гарнитуров не детектируется этим инструментом, когда я нажимаю их, так что я просто не могу использовать это для сопоставления кнопки гарнитуры.

То, что я хочу сделать, это запустить воспроизведение / пауза, когда я нажимаю кнопку гарнитуры. Есть идеи, как это сделать?

1

1 ответ на вопрос

1
grawity

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

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

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

Вы правы, он был сопоставлен с командой MPRIS и воспроизводит / делает паузу, как вы предложили. Отлично сработано. Он действительно работал из коробки с VLC, но не с другим плеером, который я использовал. Спасибо! Eric 5 лет назад 0
Для тех, кто хочет использовать mpris с YouTube, на сегодняшний день существует только одно решение: https://github.com/otommod/browser-mpris2. Eric 5 лет назад 0