
Я пытаюсь заставить работать кнопку паузы/воспроизведения на моих наушниках (Plantronics BackBeat Pro 2) с моим ноутбуком, работающим на Manjaro 17.1.10. У них также есть кнопки «Далее» и «Назад», которые работают отлично. Я пробовал их в Spotify, Clementine и VLC с тем же результатом.
Я прочитал страницы Arch Wiki по следующим темам:
Из того, что я нашел, похоже, что мне нужно загрузить uinput
модуль ядра. Руководства, которые я читал, говорят, что они должны идти в двух разных местах, и ни одно из них не объясняет, что именно вставлять.
/etc/rc.conf
/etc/modules-load.d/uinput.conf \<-- (Я думаю, это для устаревшего метода?)
Вот что я получил, пытаясь найти это:
[ibro@ibro-pc ~]$ lsmo |grep uinput
bash: lsmo: command not found
[ibro@ibro-pc ~]$ lsmod |grep uinput
uinput 20480 1
[ibro@ibro-pc ~]$ grep uinput /proc/modules
uinput 20480 1 - Live 0xffffffffc048d000
[ibro@ibro-pc ~]$ grep uinput /proc/$(uname -r)/modules.builtin
grep: /proc/4.14.40-1-MANJARO/modules.builtin: No such file or directory
[ibro@ibro-pc ~]$ pulseaudio --version
pulseaudio 11.1
Итак, предположив, что это проблема, мне нужно выяснить, где и как ее добавить. uinput
Если нет, то это может быть решением чего-то еще.
Есть две дополнительные функции наушников, поддержку которых я хотел бы добавить в Linux.
- Умная пауза при снятии и продолжение воспроизведения при надевании
- Режим активного прослушивания: приостанавливает воспроизведение музыки при обнаружении звука.
Оба они имеют очень похожий вывод для кнопки паузы/воспроизведения, когда я запускаюxev
KeyPress event, serial 35, synthetic NO, window 0x8800001,
root 0x16a, subw 0x0, time 13766406, (-871,191), root:(420,262),
state 0x0, keycode 209 (keysym 0x1008ff31, XF86AudioPause), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 35, synthetic NO, window 0x8800001,
root 0x16a, subw 0x0, time 13766437, (-871,191), root:(420,262),
state 0x0, keycode 209 (keysym 0x1008ff31, XF86AudioPause), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 35, synthetic NO, window 0x8800001,
root 0x16a, subw 0x0, time 13767016, (-871,191), root:(420,262),
state 0x0, keycode 208 (keysym 0x1008ff14, XF86AudioPlay), same_screen YES,
XKeysymToKeycode returns keycode: 172
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 35, synthetic NO, window 0x8800001,
root 0x16a, subw 0x0, time 13767047, (-871,191), root:(420,262),
state 0x0, keycode 208 (keysym 0x1008ff14, XF86AudioPlay), same_screen YES,
XKeysymToKeycode returns keycode: 172
XLookupString gives 0 bytes:
XFilterEvent returns: False
Это настоящая кнопка паузы/воспроизведения на клавиатуре.
FocusIn event, serial 34, synthetic NO, window 0x8800001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 34, synthetic NO, window 0x0,
keys: 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
FocusOut event, serial 34, synthetic NO, window 0x8800001,
mode NotifyGrab, detail NotifyAncestor
FocusOut event, serial 34, synthetic NO, window 0x8800001,
mode NotifyUngrab, detail NotifyPointer
FocusIn event, serial 34, synthetic NO, window 0x8800001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 34, synthetic NO, window 0x0,
keys: 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0