I recently purchased a backlit keyboard that was designed such that the Scroll Lock key was used to toggle the back light. I quickly found that Cinnamon does not respond properly when the Scroll Lock key is pressed. Originally, I thought the keyboard backlight was DOA because everything else worked out of the box. After a reboot I found that before launching Xorg I was able to successfully toggle the backlight using the Scroll Lock key. Then, once again, after starting Xorg (and consequentially cinnamon_session), this functionality stopped working once again.
In order to get the backlight working after launching Xorg I was forced to issue a: xset led named "Scroll Lock"
to enabled and disable this functionality.
After a bit of research I came across a program called xev
that dumped key event information to the terminal after it was started. Upon pressing the Scroll Lock key the terminal was populated with this information:
KeyPress event, serial 34, synthetic NO, window 0x2c00001, root 0x2df, subw 0x0, time 2609824, (410,0), root:(1724,142), state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False
KeyRelease event, serial 37, synthetic NO, window 0x2c00001, root 0x2df, subw 0x0, time 2609912, (410,0), root:(1724,142), state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES, XLookupString gives 0 bytes:
So I know the key event is being sent to the kernel.
Also, interestingly, I observed strange behavior when in the terminal (still prior to launching Xorg or Cinnamon) and using Scroll Lock. Namely, at this point my backlight was toggling as expected, but when Scroll Lock was enabled nothing I typed was written to the screen. After disabling Scroll Lock everything I had written was immediately dumped to the terminal as if it was previously being buffered.
tl;dr What is the deal with Scroll Lock and Xorg?