Learning USB HID in Linux Part 7 - Understanding Keyboard Report Descriptors and Reports

The below is the Report Descriptor of USB Keyboard connected to my system: usbhid-dump -d 413c:2107 | tail -n +2 | xxd -r -p | hidrd-convert -o spec Usage Page (Desktop), ; Generic desktop controls (01h) Usage (Keyboard), ; Keyboard (06h, application collection) Collection (Application), Usage Page (Keyboard), ; Keyboard/keypad (07h) Usage Minimum (KB Leftcontrol), ; Keyboard left control (E0h, dynamic value) Usage Maximum (KB Right GUI), ; Keyboard right GUI (E7h, dynamic value) Logical Minimum (0), Logical Maximum (1), Report Size (1), Report Count (8), Input (Variable), Report Count (1), Report Size (8), Input (Constant), Report Count (...