Les clés multimédias ne fonctionnent pas

12

Mes touches de coupure du volume, de diminution du volume et d'augmentation du volume fonctionnent, mais mes touches précédente, suivante et lecture / pause ne le sont pas.

J'ai essayé la solution publiée ici , mais cela ne semble pas être le problème. Tous mes org.gnome.settings-daemon.plugins.media-keysparamètres semblent être correctement préfixés par XF86:

entrez la description de l'image ici

Voici la sortie de la pression précédente, suivante, lecture / pause et mise en sourdine en séquence:

$ 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 

Comment puis-je réparer cela?

/ e1

J'ai décidé d'étudier cela un peu plus. Apparemment, si vous avez un clavier USB, vous devez utiliser evtestau lieu deshowkey pour obtenir les scancodes appropriés:

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

J'ai pu vérifier que mes clés fonctionnaient en les remappant en lettres :

$ 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

Maintenant, je peux taper des lettres avec mes touches précédente, suivante et lecture / pause. Ensuite, je xdotooltestais les clés:

$ xdotool key XF86AudioLowerVolume
$ xdotool key XF86AudioRaiseVolume

les deux fonctionnent, mais aucun des éléments suivants ne fait quoi que ce soit

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

Cela me fait penser que Unity laisse tomber la balle avec son intégration de lecteur multimédia, d'une manière ou d'une autre. Je ne sais pas comment vérifier que Unity fait la bonne chose dans les coulisses. Des idées?

/ 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.
Jeffrey
la source
Si vous voulez la version texte de cette liste de chemins de GSettings, vous pouvez en obtenir une avec dconf dump /org/gnome/settings-daemon/plugins/media-keys/. (Cela s'avère être un formidable moyen de sauvegarder et de restaurer les données GSettings / DConf.) :-)
David Foerster
Ce n'est pas Unity: c'est le module matériel. Quel matériel de clavier avez-vous ???
Fabby
2
@Fabby Le clavier fonctionnait parfaitement avec 14.04. Je vais contacter le support pour voir s'il y a quelque chose de particulier à propos de 16.04.
Jeffrey
1
@JacobVlijm: Une meilleure idée serait de sauvegarder la base de données Dconf pour les clés multimédias serait dconf dump, dconf reset -fet (de restaurer) dconf load.
David Foerster
1
@DavidFoerster Je me suis assuré de fermer tous les lecteurs multimédias avant d'en ouvrir un nouveau, cela ne fonctionnait toujours pas. VLC ne me laisse pas définir mes boutons de lecture / pause, suivant ou précédent comme raccourcis clavier globaux pour ces actions. Cependant, j'ai pu définir ALT + Lecture / Pause, ALT + Suivant et ALT + Précédent comme touches de raccourci.
Jeffrey

Réponses:

4

Les clés des médias font le travail (avec Rhythmbox). Ils ne fonctionnent pas avec banshee ou VLC car il y a un bogue avec banshee 2.6.2 et VLC 2.2.2 dans Ubuntu 16.04.

Une solution de contournement pour VLC consiste à définir un raccourci clavier global .

Jeffrey
la source
Une autre découverte amusante: il semble que ce pourrait être un bug uniquement pour l'unité. Ils fonctionnent bien avec gnome-shell.
Jeffrey
En utilisant ubuntu-gnome-desktop, j'ai remarqué que l'ouverture de deux instances de Spotify rend également les touches multimédias défectueuses.
Jan M.
0

Comme @Jeffrey l'indique dans sa réponse, les touches média fonctionnent avec la rythmbox v.3.3. Ils fonctionnent également dans le totem v.3.18.1 sans aucun ajustement nécessaire.

Également connu pour fonctionner avec le clavier multimédia sans fil 2,4 GHz Rosewill RKM-1600RF (RF6560)

Elder Geek
la source