Recientemente compré un teclado retroiluminado que fue diseñado de tal manera que la tecla Scroll Lock se usó para alternar la luz de fondo. Rápidamente descubrí que Cinnamon no responde correctamente cuando se presiona la tecla de bloqueo de desplazamiento. Originalmente, pensé que la luz de fondo del teclado era DOA porque todo lo demás funcionaba de fábrica. Después de reiniciar, descubrí que antes de iniciar Xorg pude alternar con éxito la luz de fondo con la tecla de bloqueo de desplazamiento. Luego, una vez más, después de iniciar Xorg (y consecuentemente cinnamon_session), esta funcionalidad dejó de funcionar una vez más.
Para que la luz de fondo funcione después de iniciar Xorg, me vi obligado a emitir un: xset led named "Scroll Lock"
para habilitar y deshabilitar esta funcionalidad.
Después de un poco de investigación, me encontré con un programa llamado xev
que arrojó información clave del evento al terminal después de que se inició. Al presionar la tecla de bloqueo de desplazamiento, el terminal se rellenó con esta información:
Evento KeyPress, serial 34, NO sintético, ventana 0x2c00001, raíz 0x2df, subw 0x0, hora 2609824, (410,0), raíz: (1724,142), estado 0x0, código clave 78 (keysym 0xff14, Scroll_Lock), misma pantalla SI, XLookupString da 0 bytes: XmbLookupString da 0 bytes: XFilterEvent devuelve: False
Evento KeyRelease, serie 37, NO sintético, ventana 0x2c00001, raíz 0x2df, subw 0x0, hora 2609912, (410,0), raíz: (1724,142), estado 0x0, código clave 78 (keysym 0xff14, Scroll_Lock), misma pantalla SI, XLookupString da 0 bytes:
Entonces sé que el evento clave se está enviando al kernel.
Además, curiosamente, observé un comportamiento extraño cuando estaba en la terminal (aún antes de lanzar Xorg o Cinnamon) y usaba Scroll Lock. Es decir, en este punto mi luz de fondo estaba cambiando como se esperaba, pero cuando se activó Scroll Lock, nada de lo que escribí se escribió en la pantalla. Después de deshabilitar Scroll Lock, todo lo que había escrito se volcó inmediatamente a la terminal como si estuviera siendo almacenado previamente.
tl; dr ¿Cuál es el trato con Scroll Lock y Xorg?