hwdb: map Alienware m16 R1 USB macro keys to KEY_MACRO1–5
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 1/5
- Tiempo estimado
- Menos de una hora
- Aptitud para principiantes
- 85/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- linux
- Área
- operating-systems
Línea de trabajo
La asignación pertenece a hwdb.d/60-keyboard.hwdb, junto al bloque existente de Alienware evdev:atkbd:dmi:.... Añade una entrada evdev:input:b0003v0D62pD2B0* que asigne KEYBOARD_KEY_c0051 a c0055 en macro1 a macro5, siguiendo el mismo estilo. Está terminado cuando systemd-hwdb update se ejecuta sin errores y evtest muestra KEY_MACRO1 a KEY_MACRO5 para esos códigos de escaneo.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Component
udev/hwdb
Is your feature request related to a problem? Please describe
The Alienware m16 R1 has five programmable macro keys on Fn+F2 through Fn+F6.
60-keyboard.hwdb already contains the following generic Alienware mapping for AT keyboards:
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAlienware*:pn*:*
KEYBOARD_KEY_92=macro1 # Fn+f2
KEYBOARD_KEY_93=macro2 # Fn+f3
KEYBOARD_KEY_94=macro3 # Fn+f4
KEYBOARD_KEY_95=macro4 # Fn+f5
KEYBOARD_KEY_96=macro5 # Fn+f6
However, on my Alienware m16 R1 the macro keys are emitted by a separate USB input device named DELL Technologies Keyboard, rather than by the AT keyboard:
Input device ID: bus 0x3 vendor 0xd62 product 0xd2b0 version 0x110
Input device name: "DELL Technologies Keyboard"
$ sudo udevadm info /dev/input/event6
P: /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:0D62:D2B0.0003/input/input8/event6
M: event6
R: 6
J: c13:70
U: input
D: c 13:70
N: input/event6
L: 0
S: input/by-path/pci-0000:00:14.0-usbv2-0:7:1.0-event-kbd
S: input/by-path/pci-0000:00:14.0-usb-0:7:1.0-event-kbd
S: input/by-id/usb-DELL_Technologies_Keyboard-event-kbd
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:0D62:D2B0.0003/input/input8/event6
E: DEVNAME=/dev/input/event6
E: MAJOR=13
E: MINOR=70
E: SUBSYSTEM=input
E: USEC_INITIALIZED=15631113
E: KEYBOARD_KEY_c0051=macro1
E: KEYBOARD_KEY_c0052=macro2
E: KEYBOARD_KEY_c0053=macro3
E: KEYBOARD_KEY_c0054=macro4
E: KEYBOARD_KEY_c0055=macro5
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_BUS=usb
E: ID_MODEL=Keyboard
E: ID_MODEL_ENC=Keyboard
E: ID_MODEL_ID=d2b0
E: ID_SERIAL=DELL_Technologies_Keyboard
E: ID_VENDOR=DELL_Technologies
E: ID_VENDOR_ENC=DELL\x20Technologies
E: ID_VENDOR_ID=0d62
E: ID_REVISION=3213
E: ID_TYPE=hid
E: ID_USB_MODEL=Keyboard
E: ID_USB_MODEL_ENC=Keyboard
E: ID_USB_MODEL_ID=d2b0
E: ID_USB_SERIAL=DELL_Technologies_Keyboard
E: ID_USB_VENDOR=DELL_Technologies
E: ID_USB_VENDOR_ENC=DELL\x20Technologies
E: ID_USB_VENDOR_ID=0d62
E: ID_USB_REVISION=3213
E: ID_USB_TYPE=hid
E: ID_USB_INTERFACES=:030101:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH_WITH_USB_REVISION=pci-0000:00:14.0-usbv2-0:7:1.0
E: ID_PATH=pci-0000:00:14.0-usb-0:7:1.0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_7_1_0
E: ID_INTEGRATION=internal
E: LIBINPUT_DEVICE_GROUP=3/d62/d2b0:usb-0000:00:14.0-7
E: DEVLINKS=/dev/input/by-path/pci-0000:00:14.0-usbv2-0:7:1.0-event-kbd /dev/input/by-path/pci-0000:00:14.0-usb-0:7:1.0-event-kbd /dev/input/by-id/usb-DELL_Technologies_Keyboard-event-kbd
E: TAGS=:power-switch:
E: CURRENT_TAGS=:power-switch:
Without an additional hwdb mapping, the five keys are reported as KEY_UNKNOWN.
Describe the solution you'd like
The observed scan codes are:
Fn+F2: c0051
Fn+F3: c0052
Fn+F4: c0053
Fn+F5: c0054
Fn+F6: c0055
I tested the following local hwdb entry (/etc/udev/hwdb.d/61-keyboard-local.hwdb):
evdev:input:b0003v0D62pD2B0*
KEYBOARD_KEY_c0051=macro1
KEYBOARD_KEY_c0052=macro2
KEYBOARD_KEY_c0053=macro3
KEYBOARD_KEY_c0054=macro4
KEYBOARD_KEY_c0055=macro5
After running systemd-hwdb update and retriggering the input device, evtest reports the keys correctly:
c0051 -> KEY_MACRO1 (656)
c0052 -> KEY_MACRO2 (657)
c0053 -> KEY_MACRO3 (658)
c0054 -> KEY_MACRO4 (659)
c0055 -> KEY_MACRO5 (660)
This also makes the keys available through the normal input/XKB stack as macro keys instead of NoSymbol.
Since systemd already assigns the Alienware Fn+F2–Fn+F6 keys to macro1–macro5 for the AT keyboard, this appears to be the equivalent mapping required for the USB keyboard interface used by the m16 R1. I would like to see this mapping added to systemd's hwdb so that manually mapping them won't be needed anymore.
Describe alternatives you've considered
Writing a custom /etc/udev/hwdb.d/61-keyboard-local.hwdb, which fixes the problem.
The systemd version you checked that didn't have the feature you are asking for
$ systemctl --version
systemd 262 (262-1-arch)
+PAM +AUDIT -SELINUX +APPARMOR -IMA +IPE +SMACK +SECCOMP +GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 +KMOD +LIBCRYPTSETUP +LIBCRYPTSETUP_PLUGINS +LIBFDISK +PCRE2 +PWQUALITY +P11KIT +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD +BPF_FRAMEWORK +BTF +XKBCOMMON +UTMP +LIBARCHIVE
- Lenguaje dominante
- C
- Estrellas
- 16.9k
- Forks
- 4.8k
- Merge medio
- 2 d 2 h
- PR fusionados (30 d)
- 314
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de systemd/systemd
-
[systemd-imds] curl-util: sd-event timer accuracy of 0 delays every transfer start by up to 250 msAbiertobug 🐛
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
systemd/systemd#44478 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
TEST-24-CRYPTSETUP hard-codes <build>/mkosi.output/keydev.raw and breaks when OutputDirectory= is overriddenPosiblemente ocupada @danielsyauqi la tomó hace 21 días. Abiertobug 🐛 tests
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
systemd/systemd#44051 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
65-integration.rules: USB devices behind a monitor's/dock's built-in hub get ID_INTEGRATION=internalPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertobug 🐛 udev
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
systemd/systemd#43965 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
bug 🐛 hwdb
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
'f' type omits sentence that 'd' has, implying create-only semanticsPosiblemente ocupada @sairex53 la tomó hace 17 días. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
Los mantenedores suelen responder en 1 día
Todos los issues de systemd/systemd
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
InukaAsith/TwinDesk#84 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
CanadaHonk/porffor#426 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 77/100
raysan5/raylib.com#132 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100