Я использую программу xev
для проверки событий клавиатуры и некоторых важных для меня вещей:
1) Caps Lock и Num Lock не повторяются (в отличие, скажем, a
).
2) Блокировка прокрутки, в отличие от (1), повторяется.
3) Esc
повторяется.
4) PrintScreen не повторяется
Я не знаю, как это интерпретировать (фактический вопрос возникает позже, но я хочу построить некоторый контекст, чтобы можно было дать ответ в этом контексте, если это применимо). Мое ограниченное знание клавиатуры - я «нажимаю» на клавишу, и генерируется некоторый электрический сигнал, который достигает материнской платы. Теперь есть «обработчики прерываний», которые представляют собой код, который выполняет действия при таком событии. Я предполагаю, что ядро настроило код для передачи этих ключей на «передний план» tty / DISPLAY.
Мне интересно (все еще не вопрос), кто решает это "повторяемое поведение"? Это сигнал клавиатуры посылает? Я думаю, не потому, что на X
, вы можете сделать xset r rate
. Поэтому, возможно, ядро сообщает X
, что такая клавиша находится в нажатом состоянии, а X
интерпретирует эту информацию и решает, что отправлять повторяющиеся события для определенных клавиш (с определенной скоростью) и неповторяющиеся события для других.
Тем не менее, меня удивило то, что i3
смог "преобразовать" неповторяющийся сигнал PrintScreen
в повторяющийся. У меня есть ярлык в моей конфигурации, который вызывает программу скриншота. И я вижу несколько скриншотов в секунду (моя частота повторения составляет 100 в секунду, я видел максимум 35). Итак, это мой вопрос - как мошенник это делает? Я отмечаю это X
и Linux
, потому что я считаю, что они являются наиболее подходящими тегами здесь, но, пожалуйста, не стесняйтесь добавлять / удалять теги ..