Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

hwdb: map Alienware m16 R1 USB macro keys to KEY_MACRO1–5

Abierto Apto para principiantes
#44,119 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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

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

RFE 🎁
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

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de systemd/systemd

Todos los issues de systemd/systemd

Issues similares

Más issues de C

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.