I've got a new keyboard (Steelseries Apex). It has extra key, but I can't get linux to detect it. I tried xev, getscancodes, showkey --scancodes and dmesg!

Any of those command give me error or code when I hit the keys.

What else can I try?

  • 1
    Note: dmesg shows kernel messages, it doesn't scan keycodes. – Risto Salminen Dec 14 '13 at 12:50
  • Hi! I know, but it says when an unknow key is pressed on few keyboards! :) – Thaldath Dec 14 '13 at 17:15
  • Ah, well, that's true. – Risto Salminen Dec 14 '13 at 19:10
  • 2
    "Any of those command give me error or code when I hit the keys." What are the errors? – Chris Down Dec 19 '13 at 10:36
  • Well, it could not be possible to map all keys. Looking at the product specs, it says: ** Full SteelSeries Engine support on Windows & OSX. Linux support is limited to basic HID Keyboard, Windows Key toggling, and illumination brightness control. - steelseries.com/products/keyboards/… ; You might have no love with Macro keys and other functions. – user34720 Dec 19 '13 at 11:35

I've created an utility that sends neccesary commands to the keyboard for it to report additional key events:


  • Almost perfect! ;) Macro keys are detected, but I get wrong data send! For example, when I predd MX06, I get the same data send as the volUp key. So I can't really use them both! – Thaldath Apr 11 '14 at 15:56
  • Could you tell me how to change the M's key values ? i tried in keys.txt, 90-apex.hwdb and nothing worked for me. I am using Ubuntu 12.04 and i have an Apex [RAW] – helly0d Jun 21 '14 at 16:17

The support section at http://steelseries.com/products/keyboards/steelseries-apex-gaming-keyboard

says that

Full SteelSeries Engine support on Windows & OSX. Linux support is limited to basic HID Keyboard, Windows Key toggling, and illumination brightness control.

This means you will definitely not be able to get the entire functionality on linux, which I suspect would involve the Macro keys.In that particular description, they mention

basic HID Keyboard, Windows Key toggling, and illumination brightness control

which means only basic keyboard functionality, usage of the "Windows" key and illumination control is available under Linux. Looks like the Linux drivers for the same do not support any other functionality. So, sorry, but any additional keys will not work under Linux.

  • Well, that's not because Steelseries don't want to work on linux that it is not possible! :) That's my point, If I can work on something to get those key working! – Thaldath Dec 20 '13 at 9:10
  • The task you're looking for is pretty complicated and is pretty much on the edge of impossible. You would need details about the keyboard's controller to make it access all the rest of the keys. And I'm highly doubtful you'll get the controller details anywhere online. Unless you know the controller's details, there isn't anything left to do. To add functionality, you need complete details of the actual circuitry, controller interfacing and all. – Stark07 Dec 20 '13 at 10:16
  • The problem here isn't adding the functionality. It's whether one can find the hardware details necessary to add it. – Stark07 Dec 20 '13 at 10:17
  • Like I posted just up there: finch.am/projects/blackwidow It's a python script to get the macro key working of the blackwindow keyboard on linux. It doesn't seems very complicated. I know that every keyboard is different, but still. :) – Thaldath Dec 20 '13 at 15:25
  • That guy snooped the USB using a dedicated application and scanned the keycodes/configuration generated. You will have to snoop your USB ports, get the magic bits, put those into a script, and hope it works. Sounds pretty complicated to me ! If not, you are most welcome to give it a try ! – Stark07 Dec 20 '13 at 17:48

have you try this command ?
acpi_listen man can be found here because sometime keyboard does not ring a keyboard event but an acpi event.
So you can just run the command in with the root account and type your keyboard it could show you something.

Edit 1:
You can also refer to the great ubuntu tutorial about hotkeys troubleshooting

  • Sorry, acpi don't say anything about the macro keys! – Thaldath Dec 20 '13 at 9:12
  • To bad. It was worthing a shot I guess. – Kiwy Dec 20 '13 at 9:13

You could try cat /dev/usb/hiddevx (where x is the device ID of your keyboard), and then hitting the nonfunctional keys. That should expose any keycodes getting sent to your terminal.

However, if your keyboard is anything like "macro function" keyboards I've worked with in the past, you'll probably not see any output. In days of yore, such keyboards could have their macros configured entirely in the hardware, and were thus OS-agnostic, but it sounds like the keyboard you have has functionality that uses a program in userspace to talk to the keyboard and set the macros up, for which the OEM has not yet provided from Linux.

  • Well, it didn't show anything! But it's funny, because vol+ and vol-, which works, don't show any keycode either! – Thaldath Dec 25 '13 at 23:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.