미디어 키가 작동하지 않습니다


12

볼륨 음소거, 볼륨 작게 및 볼륨 크게 키가 작동하지만 이전, 다음 및 재생 / 일시 정지 키가 작동하지 않습니다.

여기 에 게시 된 솔루션을 시도했지만 문제가되지는 않습니다. 모든 org.gnome.settings-daemon.plugins.media-keys설정에 XF86이 접두사로 사용 된 것 같습니다.

여기에 이미지 설명을 입력하십시오

다음은 이전, 다음, 재생 / 일시 정지 및 순서대로 음소거를 누른 결과입니다.

$ xev
MappingNotify event, serial 39, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

FocusOut event, serial 39, synthetic NO, window 0x3600001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 40, synthetic NO, window 0x3600001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 40, 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 40, synthetic NO, window 0x3600001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 40, synthetic NO, window 0x3600001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 40, 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 40, synthetic NO, window 0x3600001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 40, synthetic NO, window 0x3600001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 40, 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 40, synthetic NO, window 0x3600001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 40, synthetic NO, window 0x3600001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 40, 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 40, synthetic NO, window 0x3600001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 40, synthetic NO, window 0x3600001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 40, 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  
$ sudo showkey -k
kb mode was ?UNKNOWN?
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]

press any key (program terminates 10s after last keypress)...
keycode 165 press
keycode 165 release
keycode 163 press
keycode 163 release
keycode 164 press
keycode 164 release
keycode 113 press
keycode 113 release
$ sudo showkey -s
kb mode was ?UNKNOWN?
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]

press any key (program terminates 10s after last keypress)...
0xe0 0x10 0xe0 0x90 
0xe0 0x19 0xe0 0x99 
0xe0 0x22 0xe0 0xa2 
0xe0 0x20 0xe0 0xa0 

이 문제를 어떻게 해결할 수 있습니까?

/ e1

나는 이것을 조금 더 조사하기로 결정했다. 분명히 USB 키보드가 있다면 올바른 스캔 코드를 얻는 대신 사용해야 evtest합니다showkey .

$ sudo evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:  Power Button
/dev/input/event1:  Power Button
/dev/input/event2:  CYKB16 USB Keyboard
/dev/input/event3:  CYKB16 USB Keyboard
/dev/input/event4:  USB Optical Mouse
/dev/input/event5:  HDA ATI HDMI HDMI/DP,pcm=3
/dev/input/event6:  HDA ATI HDMI HDMI/DP,pcm=7
/dev/input/event7:  HDA ATI HDMI HDMI/DP,pcm=8
/dev/input/event8:  HDA ATI HDMI HDMI/DP,pcm=9
/dev/input/event9:  HDA ATI HDMI HDMI/DP,pcm=10
/dev/input/event10: HDA ATI HDMI HDMI/DP,pcm=11
/dev/input/event11: HDA Intel PCH Front Mic
/dev/input/event12: HDA Intel PCH Rear Mic
/dev/input/event13: HDA Intel PCH Line
/dev/input/event14: HDA Intel PCH Line Out Front
/dev/input/event15: HDA Intel PCH Line Out Surround
/dev/input/event16: HDA Intel PCH Line Out CLFE
/dev/input/event17: HDA Intel PCH Line Out Side
/dev/input/event18: HDA Intel PCH Front Headphone
/dev/input/event19: Eee PC WMI hotkeys
Select the device event number [0-19]: 3
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x1130 product 0x7979 version 0x110
Input device name: "CYKB16 USB Keyboard"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 113 (KEY_MUTE)
    Event code 114 (KEY_VOLUMEDOWN)
    Event code 115 (KEY_VOLUMEUP)
    Event code 116 (KEY_POWER)
    Event code 128 (KEY_STOP)
    Event code 140 (KEY_CALC)
    Event code 142 (KEY_SLEEP)
    Event code 143 (KEY_WAKEUP)
    Event code 144 (KEY_FILE)
    Event code 155 (KEY_MAIL)
    Event code 156 (KEY_BOOKMARKS)
    Event code 158 (KEY_BACK)
    Event code 159 (KEY_FORWARD)
    Event code 163 (KEY_NEXTSONG)
    Event code 164 (KEY_PLAYPAUSE)
    Event code 165 (KEY_PREVIOUSSONG)
    Event code 166 (KEY_STOPCD)
    Event code 171 (KEY_CONFIG)
    Event code 172 (KEY_HOMEPAGE)
    Event code 173 (KEY_REFRESH)
    Event code 217 (KEY_SEARCH)
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
Properties:
Testing ... (interrupt to exit)
Event: time 1484332277.304213, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00b6
Event: time 1484332277.304213, type 1 (EV_KEY), code 165 (KEY_PREVIOUSSONG), value 1
Event: time 1484332277.304213, -------------- SYN_REPORT ------------
Event: time 1484332277.304231, type 1 (EV_KEY), code 165 (KEY_PREVIOUSSONG), value 0
Event: time 1484332277.304231, -------------- SYN_REPORT ------------
Event: time 1484332277.640192, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00b5
Event: time 1484332277.640192, type 1 (EV_KEY), code 163 (KEY_NEXTSONG), value 1
Event: time 1484332277.640192, -------------- SYN_REPORT ------------
Event: time 1484332277.640207, type 1 (EV_KEY), code 163 (KEY_NEXTSONG), value 0
Event: time 1484332277.640207, -------------- SYN_REPORT ------------
Event: time 1484332277.951137, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00cd
Event: time 1484332277.951137, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 1
Event: time 1484332277.951137, -------------- SYN_REPORT ------------
Event: time 1484332277.951153, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 0
Event: time 1484332277.951153, -------------- SYN_REPORT ------------

를 문자다시 매핑하여 키가 작동하는지 확인할 수있었습니다 .

$ cat /etc/udev/hwdb.d/90-custom-keyboard.hwdb 
evdev:input:b0003v1130p7979*
 KEYBOARD_KEY_c00cd=a
 KEYBOARD_KEY_c00b6=b
 KEYBOARD_KEY_c00b5=c
$ sudo udevadm --debug hwdb --update
$ sudo udevadm trigger

이제 이전, 다음 및 재생 / 일시 정지 키로 글자를 입력 할 수 있습니다. 다음으로 xdotool키를 테스트했습니다.

$ xdotool key XF86AudioLowerVolume
$ xdotool key XF86AudioRaiseVolume

둘 다 작동하지만 다음 중 아무것도 수행하지 않습니다.

$ xdotool key XF86AudioPlay
$ xdotool key XF86AudioNext
$ xdotool key XF86AudioPrev

이것은 Unity가 미디어 플레이어 통합으로 공을 버리고 있다고 생각합니다. Unity가 무대 뒤에서 올바른 일을하고 있는지 확인하는 방법을 잘 모르겠습니다. 어떤 아이디어?

/ e2

$ sudo lsusb -d 1130:7979
Bus 001 Device 003: ID 1130:7979 Tenx Technology, Inc. 
$ sudo lsusb -t
/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
        |__ Port 7: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
        |__ Port 7: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
        |__ Port 5: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 5: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 6: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M

/ e3

$ unity --version
unity 7.4.0

/ e4

$ uname -a
Linux urithiru 4.4.0-59-generic #80-Ubuntu SMP Fri Jan 6 17:47:47 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

/ e5

$ banshee --version
Banshee 2.6.2 (2.6.2) http://banshee.fm
Copyright 2005-2017 Novell, Inc. and Contributors.
$ vlc --version
VLC media player 2.2.2 Weatherwax (revision 2.2.2-0-g6259d80)
VLC version 2.2.2 Weatherwax (2.2.2-0-g6259d80)
Compiled by buildd on lgw01-10.buildd (Mar 28 2016 02:49:24)
Compiler: gcc version 5.3.1 20160323 (Ubuntu 5.3.1-13ubuntu1)
This program comes with NO WARRANTY, to the extent permitted by law.
You may redistribute it under the terms of the GNU General Public License;
see the file named COPYING for details.
Written by the VideoLAN team; see the AUTHORS file.

해당 GSettings 경로 목록의 텍스트 버전을 원하면을 사용하여 얻을 수 있습니다 dconf dump /org/gnome/settings-daemon/plugins/media-keys/. (이것은 GSettings / DConf 데이터를 저장하고 복원하는 강력한 방법입니다.) :-)
David Foerster

그것은 유니티가 아닙니다 : 그것은 하드웨어 모듈입니다. 어떤 키보드 하드웨어가 있습니까 ???
Fabby

2
@Fabby 키보드는 14.04에서 완벽하게 작동했습니다. 16.04와 관련하여 특정 사항이 있는지 지원팀에 문의하겠습니다.
Jeffrey

1
@JacobVlijm : 더 좋은 아이디어가 될 것 미디어 키의 Dconf 데이터베이스를 백업하는 것 dconf dump, dconf reset -f그리고 (복원) dconf load.
David Foerster

1
@DavidFoerster 새 미디어 플레이어를 열기 전에 모든 미디어 플레이어를 닫아야했지만 여전히 작동하지 않습니다. VLC를 사용하면 재생 / 일시 정지, 다음 또는 이전 버튼을 해당 작업에 대한 전역 핫키로 설정할 수 없습니다. 그래도 ALT + Play / Pause, ALT + Next 및 ALT + Previous를 단축키로 설정할 수있었습니다.
Jeffrey

답변:


4

미디어 키 작동합니다 (리듬 박스 사용). Ubuntu 16.04 에는 밴시 2.6.2VLC 2.2.2 의 버그가 있기 때문에 밴시 또는 VLC에서는 작동하지 않습니다 .

VLC의 해결 방법 은 글로벌 핫키설정하는 것 입니다.


또 다른 재미있는 발견 : 이것은 유니티 전용 버그 일 수 있습니다. 그들은 gnome-shell과 잘 작동합니다.
Jeffrey

우분투 gnome-desktop을 사용하면 Spotify에서 두 인스턴스를 열어도 미디어 키가 오작동하는 것으로 나타났습니다.
Jan M.

0

@Jeffrey가 대답 에서 미디어 키는 rythmbox v.3.3에서 작동합니다. 또한 조정없이 토템 v.3.18.1에서 작동합니다.

Rosewill RKM-1600RF (RF6560) 2.4GHz 무선 멀티미디어 키보드와 함께 작동하는 것으로도 알려져 있음

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.