Skip to content

Instantly share code, notes, and snippets.

@jnettlet
Last active July 13, 2026 06:59
Show Gist options
  • Select an option

  • Save jnettlet/afb20a048b8720f3b4eb8506d8b05643 to your computer and use it in GitHub Desktop.

Select an option

Save jnettlet/afb20a048b8720f3b4eb8506d8b05643 to your computer and use it in GitHub Desktop.
Stop Asus ROG Falchion mechanical keyboard from sending POWER and SLEEP key presses when the keyboard goes to sleep. Put in /etc/udev/hwdb.d and then run sudo systemd-hwdb update
evdev:input:b*v0B05p193Ee0111*
KEYBOARD_KEY_10081=reserved
KEYBOARD_KEY_10082=reserved
KEYBOARD_KEY_70070=reserved
KEYBOARD_KEY_70071=reserved
KEYBOARD_KEY_70072=reserved
KEYBOARD_KEY_70073=reserved
KEYBOARD_KEY_70074=reserved
KEYBOARD_KEY_70075=reserved
KEYBOARD_KEY_70076=reserved
KEYBOARD_KEY_70077=reserved
@rekosuo

rekosuo commented Feb 25, 2024

Copy link
Copy Markdown

The values after KEYBOARD_KEY_ are scancodes, yes? How did you find out which scancodes needed to be set to reserved? Could you explain what keys lines 2 to 11 act on, and what setting a key to reserved means?

I want to learn how exactly this works.
For normal keys I can find scancodes with evtest, but the keys in the config above don't seem to be normally available on the keyboard.

Also, do you know if this can be done with keycodes instead of scancodes? If it can, how would it be done?

@rekosuo

rekosuo commented Feb 26, 2024

Copy link
Copy Markdown

I think I found the answer in USB HID Usage Tables 1.5: https://usb.org/sites/default/files/hut1_5.pdf
I think 10081 and 10082 correspond to 81 and 82 (System Power Down and System Sleep) in Generic Desktop Page (0x01).

The ones beginning with 7 correspond to values in Keyboard/Keypad Page (0x07), right?

@jnettlet

Copy link
Copy Markdown
Author

I think I found the answer in USB HID Usage Tables 1.5: https://usb.org/sites/default/files/hut1_5.pdf I think 10081 and 10082 correspond to 81 and 82 (System Power Down and System Sleep) in Generic Desktop Page (0x01).

The ones beginning with 7 correspond to values in Keyboard/Keypad Page (0x07), right?

Yes that is correct, however I have no idea why they are being sent simultaneous to the expected key codes. It could be a firmware bug, or maybe they trap the keycodes in their software and decided what keycode to pass to the host os depending on software settings. My main objective was just to get the keyboard functional under Linux.

@Jeppo

Jeppo commented Mar 31, 2024

Copy link
Copy Markdown

Works perfectly on ChimeraOS. Thanks!

@mrdev023

Copy link
Copy Markdown

@seboss666

Copy link
Copy Markdown

How did you find the bits in the first line ? I have a Strix Scope RX TKL Wireless Deluxe (what a name) and i'm still blocked to use it on Linux because of all the hassle I have.

From what I understand:

  • v0B05 is the Vendor ID
  • p193E is the Part ID
    Both are found with lsusb, in my case:
lsusb |grep ASUS
Bus 001 Device 019: ID 0b05:1a07 ASUSTek Computer, Inc. ROG STRIX SCOPE RX TKL WIRELESS DELUXE

But the last part ? What should I replace for e0111 ? I'm puzzled because even kernel events does not tells me much about the device (look at that mess):

[jeu. juin 25 04:17:40 2026] usb 1-2: New USB device found, idVendor=0b05, idProduct=1a07, bcdDevice= 2.05
[jeu. juin 25 04:17:40 2026] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[jeu. juin 25 04:17:40 2026] usb 1-2: Product: ROG STRIX SCOPE RX TKL WIRELESS DELUXE
[jeu. juin 25 04:17:40 2026] usb 1-2: Manufacturer: ASUSTeK
[jeu. juin 25 04:17:40 2026] input: ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE as /devices/pci0000:00/0000:00:08.1/0000:c4:00.3/usb1/1-2/1-2:1.0/0003:0B05:1A07.001A/input/input44
[jeu. juin 25 04:17:40 2026] hid-generic 0003:0B05:1A07.001A: input,hidraw1: USB HID v1.11 Keyboard [ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE] on usb-0000:c4:00.3-2/input0
[jeu. juin 25 04:17:40 2026] hid-generic 0003:0B05:1A07.001B: hiddev96,hidraw2: USB HID v1.11 Device [ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE] on usb-0000:c4:00.3-2/input1
[jeu. juin 25 04:17:40 2026] input: ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:c4:00.3/usb1/1-2/1-2:1.2/0003:0B05:1A07.001C/input/input45
[jeu. juin 25 04:17:40 2026] input: ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE System Control as /devices/pci0000:00/0000:00:08.1/0000:c4:00.3/usb1/1-2/1-2:1.2/0003:0B05:1A07.001C/input/input46
[jeu. juin 25 04:17:40 2026] input: ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE as /devices/pci0000:00/0000:00:08.1/0000:c4:00.3/usb1/1-2/1-2:1.2/0003:0B05:1A07.001C/input/input47
[jeu. juin 25 04:17:40 2026] input: ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE Mouse as /devices/pci0000:00/0000:00:08.1/0000:c4:00.3/usb1/1-2/1-2:1.2/0003:0B05:1A07.001C/input/input48
[jeu. juin 25 04:17:40 2026] hid-generic 0003:0B05:1A07.001C: input,hiddev97,hidraw3: USB HID v1.11 Mouse [ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE] on usb-0000:c4:00.3-2/input2
[jeu. juin 25 04:17:40 2026] input: ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE as /devices/pci0000:00/0000:00:08.1/0000:c4:00.3/usb1/1-2/1-2:1.3/0003:0B05:1A07.001D/input/input49
[jeu. juin 25 04:17:40 2026] hid-generic 0003:0B05:1A07.001D: input,hidraw4: USB HID v1.11 Keyboard [ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE] on usb-0000:c4:00.3-2/input3

@jnettlet

Copy link
Copy Markdown
Author

How did you find the bits in the first line ? I have a Strix Scope RX TKL Wireless Deluxe (what a name) and i'm still blocked to use it on Linux because of all the hassle I have.

From what I understand:

  • v0B05 is the Vendor ID
  • p193E is the Part ID
    Both are found with lsusb, in my case:
lsusb |grep ASUS
Bus 001 Device 019: ID 0b05:1a07 ASUSTek Computer, Inc. ROG STRIX SCOPE RX TKL WIRELESS DELUXE

But the last part ? What should I replace for e0111 ? I'm puzzled because even kernel events does not tells me much about the device (look at that mess):

[jeu. juin 25 04:17:40 2026] usb 1-2: New USB device found, idVendor=0b05, idProduct=1a07, bcdDevice= 2.05
[jeu. juin 25 04:17:40 2026] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[jeu. juin 25 04:17:40 2026] usb 1-2: Product: ROG STRIX SCOPE RX TKL WIRELESS DELUXE
[jeu. juin 25 04:17:40 2026] usb 1-2: Manufacturer: ASUSTeK
[jeu. juin 25 04:17:40 2026] input: ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE as /devices/pci0000:00/0000:00:08.1/0000:c4:00.3/usb1/1-2/1-2:1.0/0003:0B05:1A07.001A/input/input44
[jeu. juin 25 04:17:40 2026] hid-generic 0003:0B05:1A07.001A: input,hidraw1: USB HID v1.11 Keyboard [ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE] on usb-0000:c4:00.3-2/input0
[jeu. juin 25 04:17:40 2026] hid-generic 0003:0B05:1A07.001B: hiddev96,hidraw2: USB HID v1.11 Device [ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE] on usb-0000:c4:00.3-2/input1
[jeu. juin 25 04:17:40 2026] input: ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:c4:00.3/usb1/1-2/1-2:1.2/0003:0B05:1A07.001C/input/input45
[jeu. juin 25 04:17:40 2026] input: ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE System Control as /devices/pci0000:00/0000:00:08.1/0000:c4:00.3/usb1/1-2/1-2:1.2/0003:0B05:1A07.001C/input/input46
[jeu. juin 25 04:17:40 2026] input: ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE as /devices/pci0000:00/0000:00:08.1/0000:c4:00.3/usb1/1-2/1-2:1.2/0003:0B05:1A07.001C/input/input47
[jeu. juin 25 04:17:40 2026] input: ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE Mouse as /devices/pci0000:00/0000:00:08.1/0000:c4:00.3/usb1/1-2/1-2:1.2/0003:0B05:1A07.001C/input/input48
[jeu. juin 25 04:17:40 2026] hid-generic 0003:0B05:1A07.001C: input,hiddev97,hidraw3: USB HID v1.11 Mouse [ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE] on usb-0000:c4:00.3-2/input2
[jeu. juin 25 04:17:40 2026] input: ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE as /devices/pci0000:00/0000:00:08.1/0000:c4:00.3/usb1/1-2/1-2:1.3/0003:0B05:1A07.001D/input/input49
[jeu. juin 25 04:17:40 2026] hid-generic 0003:0B05:1A07.001D: input,hidraw4: USB HID v1.11 Keyboard [ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE] on usb-0000:c4:00.3-2/input3

This info is from the modalias line that you get out of sysfs.

find /sys -name *modalias | xargs grep -i v0B05p1a07

should work for you. it will most likely be e0111-e0 and you just take everything before the -e0 to match all versions.

@seboss666

Copy link
Copy Markdown

Indeed, I found way too many lines in this, but the "e0111" is there:

$ find /sys -name *modalias | xargs grep -i v0B05p1a07
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.1/modalias:usb:v0B05p1A07d0205dc00dsc00dp00ic03isc00ip00in01
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.2/0003:0B05:1A07.0013/input/input40/modalias:input:b0003v0B05p1A07e0111-e0,3,kra28,mlsfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.2/0003:0B05:1A07.0013/input/input39/modalias:input:b0003v0B05p1A07e0111-e0,1,4,k74,8E,8F,ram4,lsfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.2/0003:0B05:1A07.0013/input/input41/modalias:input:b0003v0B05p1A07e0111-e0,1,2,4,k110,111,112,r0,1,8,B,am4,lsfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.2/0003:0B05:1A07.0013/input/input38/modalias:input:b0003v0B05p1A07e0111-e0,1,4,k71,72,73,80,8C,90,9B,9C,9E,9F,A3,A4,A5,A6,AB,AC,AD,D9,ram4,lsfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.2/modalias:usb:v0B05p1A07d0205dc00dsc00dp00ic03isc00ip00in02
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.0/0003:0B05:1A07.0011/input/input37/modalias:input:b0003v0B05p1A07e0111-e0,1,4,11,14,k71,72,73,74,75,77,79,7A,7B,7C,7D,7E,7F,80,81,83,85,87,88,89,B7,B8,B9,BA,BB,BC,BD,BE,F0,ram4,l0,1,2,3,4,sfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.0/modalias:usb:v0B05p1A07d0205dc00dsc00dp00ic03isc01ip01in00
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.3/0003:0B05:1A07.0014/input/input42/modalias:input:b0003v0B05p1A07e0111-e0,1,4,14,k74,75,77,7F,80,B7,B8,B9,BA,BB,BC,BD,BE,ram4,lsfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.3/modalias:usb:v0B05p1A07d0205dc00dsc00dp00ic03isc00ip01in03

Still don't know exactly what "e" stands for in this string, but glad to know how to find it for other people, thank you very much. FYI I just applied the same events "reservation" and also had to reboot for this to be taken into account ;)

@jnettlet

Copy link
Copy Markdown
Author

Indeed, I found way too many lines in this, but the "e0111" is there:

$ find /sys -name *modalias | xargs grep -i v0B05p1a07
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.1/modalias:usb:v0B05p1A07d0205dc00dsc00dp00ic03isc00ip00in01
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.2/0003:0B05:1A07.0013/input/input40/modalias:input:b0003v0B05p1A07e0111-e0,3,kra28,mlsfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.2/0003:0B05:1A07.0013/input/input39/modalias:input:b0003v0B05p1A07e0111-e0,1,4,k74,8E,8F,ram4,lsfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.2/0003:0B05:1A07.0013/input/input41/modalias:input:b0003v0B05p1A07e0111-e0,1,2,4,k110,111,112,r0,1,8,B,am4,lsfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.2/0003:0B05:1A07.0013/input/input38/modalias:input:b0003v0B05p1A07e0111-e0,1,4,k71,72,73,80,8C,90,9B,9C,9E,9F,A3,A4,A5,A6,AB,AC,AD,D9,ram4,lsfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.2/modalias:usb:v0B05p1A07d0205dc00dsc00dp00ic03isc00ip00in02
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.0/0003:0B05:1A07.0011/input/input37/modalias:input:b0003v0B05p1A07e0111-e0,1,4,11,14,k71,72,73,74,75,77,79,7A,7B,7C,7D,7E,7F,80,81,83,85,87,88,89,B7,B8,B9,BA,BB,BC,BD,BE,F0,ram4,l0,1,2,3,4,sfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.0/modalias:usb:v0B05p1A07d0205dc00dsc00dp00ic03isc01ip01in00
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.3/0003:0B05:1A07.0014/input/input42/modalias:input:b0003v0B05p1A07e0111-e0,1,4,14,k74,75,77,7F,80,B7,B8,B9,BA,BB,BC,BD,BE,ram4,lsfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.3/modalias:usb:v0B05p1A07d0205dc00dsc00dp00ic03isc00ip01in03

Still don't know exactly what "e" stands for in this string, but glad to know how to find it for other people, thank you very much. FYI I just applied the same events "reservation" and also had to reboot for this to be taken into account ;)

Indeed, I found way too many lines in this, but the "e0111" is there:

$ find /sys -name *modalias | xargs grep -i v0B05p1a07
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.1/modalias:usb:v0B05p1A07d0205dc00dsc00dp00ic03isc00ip00in01
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.2/0003:0B05:1A07.0013/input/input40/modalias:input:b0003v0B05p1A07e0111-e0,3,kra28,mlsfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.2/0003:0B05:1A07.0013/input/input39/modalias:input:b0003v0B05p1A07e0111-e0,1,4,k74,8E,8F,ram4,lsfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.2/0003:0B05:1A07.0013/input/input41/modalias:input:b0003v0B05p1A07e0111-e0,1,2,4,k110,111,112,r0,1,8,B,am4,lsfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.2/0003:0B05:1A07.0013/input/input38/modalias:input:b0003v0B05p1A07e0111-e0,1,4,k71,72,73,80,8C,90,9B,9C,9E,9F,A3,A4,A5,A6,AB,AC,AD,D9,ram4,lsfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.2/modalias:usb:v0B05p1A07d0205dc00dsc00dp00ic03isc00ip00in02
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.0/0003:0B05:1A07.0011/input/input37/modalias:input:b0003v0B05p1A07e0111-e0,1,4,11,14,k71,72,73,74,75,77,79,7A,7B,7C,7D,7E,7F,80,81,83,85,87,88,89,B7,B8,B9,BA,BB,BC,BD,BE,F0,ram4,l0,1,2,3,4,sfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.0/modalias:usb:v0B05p1A07d0205dc00dsc00dp00ic03isc01ip01in00
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.3/0003:0B05:1A07.0014/input/input42/modalias:input:b0003v0B05p1A07e0111-e0,1,4,14,k74,75,77,7F,80,B7,B8,B9,BA,BB,BC,BD,BE,ram4,lsfw
/sys/devices/pci0000:00/0000:00:08.3/0000:c6:00.4/usb7/7-1/7-1.4/7-1.4:1.3/modalias:usb:v0B05p1A07d0205dc00dsc00dp00ic03isc00ip01in03

(bus type b0003 is Bluetooth) manufactured by vendor 0B05 (ASUS) with product ID 1A07, specifically matching the e0111 event capability extension

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment