Voici mon matériel :
Clavier : Logitech K270
Souris : Logitech M560
Les 2 sont donc sans fil et relié au même périphérique Unifying.
Le problème c'est que le firmware de la souris M560 a été conçu pour Windows 8.
Par exemple le bouton au niveau du pouce qui sert à faire "Précédent" va exécuter Super+D qui correspond donc à "Afficher le bureau".
J'ai donc partiellement résolu le problème grâce à ces liens :
https://wiki.archlinux.org/index.php/Ma ... o_keycodes
https://bugzilla.redhat.com/show_bug.cgi?id=1035668#c3
J'ai crée le fichier /etc/udev/hwdb.d/90-logitech-m-560.hwdb contenant :
Code : Tout sélectionner
# Logitech M-560
keyboard:usb:v046DpC52B*
KEYBOARD_KEY_90001=middle # Middle Button map to Middle
KEYBOARD_KEY_700E2=reserved # Will Send leftalt when move left with middle button click
KEYBOARD_KEY_70072=reserved # Will send f23 when move left with middle button click
KEYBOARD_KEY_700E3=reserved # Will Send leftmeta when move right with middle button click. Also is sent when use Back button.
KEYBOARD_KEY_7002B=reserved # Will Send tab when move right with middle button click
KEYBOARD_KEY_90004=left # Left Scroll Click map to Left
KEYBOARD_KEY_90005=right # Right Scroll Click map to Right
KEYBOARD_KEY_70007=back # Back button sends second keycode. 700E3 is the first and already mapped.
KEYBOARD_KEY_700E7=forward # Forward button map to Forward
Code : Tout sélectionner
udevadm hwdb --update
reboot
Je pense qu'il doit être possible de rendre la règle "keyboard:usb:v046DpC52B*" plus précise afin qu'elle s'applique qu'à la souris non ?
Voici quelques informations à propos de la souris :
evtest /dev/input/by-id/usb-Logitech_USB_Receiver-if02-event-mouse
Code : Tout sélectionner
Input device ID: bus 0x3 vendor 0x46d product 0xc52b version 0x111
Input device name: "Logitech Unifying Device. Wireless PID:402d"
udevadm info -a -n /dev/input/by-id/usb-Logitech_USB_Receiver-if02-event-mouse
Code : Tout sélectionner
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/devices/pci0000:00/0000:00:1a.1/usb4/4-2/4-2:1.2/0003:046D:C52B.0003/input/input7/event4':
KERNEL=="event4"
SUBSYSTEM=="input"
DRIVER==""
looking at parent device '/devices/pci0000:00/0000:00:1a.1/usb4/4-2/4-2:1.2/0003:046D:C52B.0003/input/input7':
KERNELS=="input7"
SUBSYSTEMS=="input"
DRIVERS==""
ATTRS{name}=="Logitech Unifying Device. Wireless PID:402d"
ATTRS{phys}=="usb-0000:00:1a.1-2:1"
ATTRS{uniq}==""
ATTRS{properties}=="0"
looking at parent device '/devices/pci0000:00/0000:00:1a.1/usb4/4-2/4-2:1.2/0003:046D:C52B.0003':
KERNELS=="0003:046D:C52B.0003"
SUBSYSTEMS=="hid"
DRIVERS=="logitech-djreceiver"
looking at parent device '/devices/pci0000:00/0000:00:1a.1/usb4/4-2/4-2:1.2':
KERNELS=="4-2:1.2"
SUBSYSTEMS=="usb"
DRIVERS=="usbhid"
ATTRS{bInterfaceClass}=="03"
ATTRS{bInterfaceSubClass}=="00"
ATTRS{bInterfaceProtocol}=="00"
ATTRS{bNumEndpoints}=="01"
ATTRS{supports_autosuspend}=="1"
ATTRS{bAlternateSetting}==" 0"
ATTRS{bInterfaceNumber}=="02"
looking at parent device '/devices/pci0000:00/0000:00:1a.1/usb4/4-2':
KERNELS=="4-2"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{devpath}=="2"
ATTRS{idVendor}=="046d"
ATTRS{speed}=="12"
ATTRS{bNumInterfaces}==" 3"
ATTRS{bConfigurationValue}=="1"
ATTRS{bMaxPacketSize0}=="8"
ATTRS{busnum}=="4"
ATTRS{devnum}=="2"
ATTRS{configuration}=="RQR12.01_B0019"
ATTRS{bMaxPower}=="98mA"
ATTRS{authorized}=="1"
ATTRS{bmAttributes}=="a0"
ATTRS{bNumConfigurations}=="1"
ATTRS{maxchild}=="0"
ATTRS{bcdDevice}=="1201"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{quirks}=="0x0"
ATTRS{version}==" 2.00"
ATTRS{urbnum}=="118279"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="Logitech"
ATTRS{removable}=="unknown"
ATTRS{idProduct}=="c52b"
ATTRS{bDeviceClass}=="00"
ATTRS{product}=="USB Receiver"
looking at parent device '/devices/pci0000:00/0000:00:1a.1/usb4':
KERNELS=="usb4"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{devpath}=="0"
ATTRS{idVendor}=="1d6b"
ATTRS{speed}=="12"
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{authorized_default}=="1"
ATTRS{busnum}=="4"
ATTRS{devnum}=="1"
ATTRS{configuration}==""
ATTRS{bMaxPower}=="0mA"
ATTRS{authorized}=="1"
ATTRS{bmAttributes}=="e0"
ATTRS{bNumConfigurations}=="1"
ATTRS{maxchild}=="2"
ATTRS{bcdDevice}=="0312"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{quirks}=="0x0"
ATTRS{serial}=="0000:00:1a.1"
ATTRS{version}==" 1.10"
ATTRS{urbnum}=="32"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="Linux 3.12.9-2-ARCH uhci_hcd"
ATTRS{removable}=="unknown"
ATTRS{idProduct}=="0001"
ATTRS{bDeviceClass}=="09"
ATTRS{product}=="UHCI Host Controller"
looking at parent device '/devices/pci0000:00/0000:00:1a.1':
KERNELS=="0000:00:1a.1"
SUBSYSTEMS=="pci"
DRIVERS=="uhci_hcd"
ATTRS{irq}=="17"
ATTRS{subsystem_vendor}=="0x1028"
ATTRS{broken_parity_status}=="0"
ATTRS{class}=="0x0c0300"
ATTRS{consistent_dma_mask_bits}=="32"
ATTRS{dma_mask_bits}=="32"
ATTRS{local_cpus}=="00000000,00000000,00000000,00000003"
ATTRS{device}=="0x3a68"
ATTRS{enable}=="1"
ATTRS{msi_bus}==""
ATTRS{local_cpulist}=="0-1"
ATTRS{vendor}=="0x8086"
ATTRS{subsystem_device}=="0x0420"
ATTRS{numa_node}=="-1"
ATTRS{d3cold_allowed}=="0"
looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
evtest /dev/input/by-id/usb-Logitech_USB_Receiver-if02-event-kbd
Code : Tout sélectionner
Input device ID: bus 0x3 vendor 0x46d product 0xc52b version 0x111
Input device name: "Logitech Unifying Device. Wireless PID:4003"
dmesg | grep logitech-dj
Code : Tout sélectionner
[ 3.070809] logitech-djreceiver 0003:046D:C52B.0003: hiddev0,hidraw0: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:1a.1-2/input2
[ 3.074236] logitech-djdevice 0003:046D:C52B.0004: input,hidraw1: USB HID v1.11 Keyboard [Logitech Unifying Device. Wireless PID:402d] on usb-0000:00:1a.1-2:1
[ 3.076213] logitech-djdevice 0003:046D:C52B.0005: input,hidraw2: USB HID v1.11 Keyboard [Logitech Unifying Device. Wireless PID:4003] on usb-0000:00:1a.1-2:2
Code : Tout sélectionner
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech Unifying Device. Wireless PID:402d id=8 [slave pointer (2)]
⎜ ↳ Logitech Unifying Device. Wireless PID:4003 id=9 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Dell WMI hotkeys id=10 [slave keyboard (3)]