Недавно я приобрел клавиатуру с подсветкой, которая была разработана таким образом, что клавиша Scroll Lock использовалась для переключения подсветки. Я быстро обнаружил, что Cinnamon не реагирует должным образом при нажатии клавиши Scroll Lock. Первоначально я думал, что подсветка клавиатуры была DOA, потому что все остальное работало из коробки. После перезагрузки я обнаружил, что перед запуском Xorg я смог успешно переключать подсветку с помощью клавиши Scroll Lock. Затем, еще раз, после запуска Xorg (и, следовательно, cinnamon_session), эта функциональность снова перестала работать.
Чтобы заставить работать подсветку после запуска Xorg, я был вынужден выполнить команду: xset led named "Scroll Lock"
чтобы включить и отключить эту функцию.
После небольшого исследования я наткнулся на программу, которая вызвала информацию xev
о событиях, связанных с ключом, в терминал после его запуска. После нажатия клавиши Scroll Lock терминал заполнялся этой информацией:
Событие KeyPress, серийный номер 34, синтетический номер NO, окно 0x2c00001, корень 0x2df, subw 0x0, время 2609824, (410,0), корень: (1724,142), состояние 0x0, код ключа 78 (keysym 0xff14, Scroll_Lock), same_screen YES, XLookupString дает 0 байтов: XmbLookupString дает 0 байтов: XFilterEvent возвращает: False
Событие KeyRelease, серийный номер 37, синтетический номер NO, окно 0x2c00001, корень 0x2df, subw 0x0, время 2609912, (410,0), корень: (1724,142), состояние 0x0, код ключа 78 (keysym 0xff14, Scroll_Lock), same_screen YES, XLookupString дает 0 байтов:
Итак, я знаю, что ключевое событие отправляется ядру.
Также, что интересно, я наблюдал странное поведение в терминале (еще до запуска Xorg или Cinnamon) и при использовании Scroll Lock. А именно, в этот момент моя подсветка переключалась, как и ожидалось, но когда Scroll Lock был включен, я ничего не печатал на экране. После отключения Scroll Lock все, что я написал, было немедленно сброшено в терминал, как если бы оно было ранее буферизовано.
tl; dr. Как обстоят дела с Scroll Lock и Xorg?