LINUX.ORG.RU

История изменений

Исправление debugger, (текущая версия) :

ты прикалываешься чтоли? не срабатывает на полных нажатиях.
это програмная проблема Клавиатура для быстрой печати (комментарий)

Моя клавиатура работает под управлением QMK. Там есть фишка под названием «макросы»:

  1. Нажимаешь первую волшебную клавишу — включается запись макроса.
  2. Нажимаешь клавиши — они отправляются компу и записываются.
  3. Нажимаешь вторую волшебную клавишу — запись останавливается.
  4. Нажимаешь третью волшебную клавишу — ранее записанные клавиши отправляются компу.

Так вот, только что специально записал длинный (65 клавиш: 64 раза клавиша x и один раз клавиша Enter в конце) макрос, потом нажимал клавишу воспроизведения много раз. Ни одного пропуска клавиш не обнаружил. В пяти текстовых редакторах (gedit, geany, mcedit, Gnome Text Editor, LibreOffice Writer) наблюдаю ровные колонки текста.

Повторил эксперимент с xev, вот фрагмент лога:

KeyPress event, serial 38, synthetic NO, window 0x3e00001,
    root 0x6cd, subw 0x0, time 427748519, (1113,729), root:(2413,898),
    state 0x10, keycode 53 (keysym 0x78, x), same_screen YES,
    XLookupString gives 1 bytes: (78) "x"
    XmbLookupString gives 1 bytes: (78) "x"
    XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x3e00001,
    root 0x6cd, subw 0x0, time 427748519, (1113,729), root:(2413,898),
    state 0x10, keycode 53 (keysym 0x78, x), same_screen YES,
    XLookupString gives 1 bytes: (78) "x"
    XFilterEvent returns: False

KeyPress event, serial 38, synthetic NO, window 0x3e00001,
    root 0x6cd, subw 0x0, time 427748520, (1113,729), root:(2413,898),
    state 0x10, keycode 53 (keysym 0x78, x), same_screen YES,
    XLookupString gives 1 bytes: (78) "x"
    XmbLookupString gives 1 bytes: (78) "x"
    XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x3e00001,
    root 0x6cd, subw 0x0, time 427748521, (1113,729), root:(2413,898),
    state 0x10, keycode 53 (keysym 0x78, x), same_screen YES,
    XLookupString gives 1 bytes: (78) "x"
    XFilterEvent returns: False

<...>

Вычленил все строчки с time из лога:

time 427748519
time 427748519
time 427748520
time 427748521
<...>
time 427748642
time 427748643
time 427748644
time 427748645

Между первым и последним событиями 427748645 − 427748519 = 126 мс. Записанных клавиш — 65 (130 событий: 65 нажатий, 65 отжатий). Другими словами, на моей системе через иксы клавиши проходят со скоростью примерно 65 клавиш за 126 мс, или 515 клавиш в секунду.

Записал другой макрос, с буквами в разных регистрах (читай: с нажатиями шифта). Пропусков тоже не видел.

Может ли быть проблема в софте? Может. Но я бы поставил на кривые руки — я чой-то не верю что ТС и теодор печатают быстрее, чем 515 клавиш в секунду. Скорее всего, на большой скорости подводят руки: либо какие-то клавиши не дожимаются, либо вторая клавиша нажимается до того, как будет отпущена первая, либо что-то подобное.

Исходная версия debugger, :

не срабатывает на полных нажатиях.

Моя клавиатура работает под управлением QMK. Там есть фишка под названием «макросы»:

  1. Нажимаешь первую волшебную клавишу — включается запись макроса.
  2. Нажимаешь клавиши — они отправляются компу и записываются.
  3. Нажимаешь вторую волшебную клавишу — запись останавливается.
  4. Нажимаешь третью волшебную клавишу — ранее записанные клавиши отправляются компу.

Так вот, только что специально записал длинный (65 клавиш: 64 раза клавиша x и один раз клавиша Enter в конце) макрос, потом нажимал клавишу воспроизведения много раз. Ни одного пропуска клавиш не обнаружил. В пяти текстовых редакторах (gedit, geany, mcedit, Gnome Text Editor, LibreOffice Writer) наблюдаю ровные колонки текста.

Повторил эксперимент с xev, вот фрагмент лога:

KeyPress event, serial 38, synthetic NO, window 0x3e00001,
    root 0x6cd, subw 0x0, time 427748519, (1113,729), root:(2413,898),
    state 0x10, keycode 53 (keysym 0x78, x), same_screen YES,
    XLookupString gives 1 bytes: (78) "x"
    XmbLookupString gives 1 bytes: (78) "x"
    XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x3e00001,
    root 0x6cd, subw 0x0, time 427748519, (1113,729), root:(2413,898),
    state 0x10, keycode 53 (keysym 0x78, x), same_screen YES,
    XLookupString gives 1 bytes: (78) "x"
    XFilterEvent returns: False

KeyPress event, serial 38, synthetic NO, window 0x3e00001,
    root 0x6cd, subw 0x0, time 427748520, (1113,729), root:(2413,898),
    state 0x10, keycode 53 (keysym 0x78, x), same_screen YES,
    XLookupString gives 1 bytes: (78) "x"
    XmbLookupString gives 1 bytes: (78) "x"
    XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x3e00001,
    root 0x6cd, subw 0x0, time 427748521, (1113,729), root:(2413,898),
    state 0x10, keycode 53 (keysym 0x78, x), same_screen YES,
    XLookupString gives 1 bytes: (78) "x"
    XFilterEvent returns: False

....

Вычленил все строчки с time из лога:

time 427748519
time 427748519
time 427748520
time 427748521

time 427748642
time 427748643
time 427748644
time 427748645

Между первым и последним событиями 427748645 − 427748519 = 126 мс. Записанных клавиш — 65 (130 событий: 65 нажатий, 65 отжатий). Другими словами, на моей системе через иксы клавиши проходят со скоростью примерно 65 клавиш за 126 мс, или 515 клавиш в секунду.

Записал другой макрос, с буквами в разных регистрах (читай: с нажатиями шифта). Пропусков тоже не видел.

Может ли быть проблема в софте? Может. Но я бы поставил на кривые руки — я чой-то не верю что ТС и теодор печатают быстрее, чем 515 клавиш в секунду. Скорее всего, на большой скорости подводят руки: либо какие-то клавиши не дожимаются, либо вторая клавиша нажимается до того, как будет отпущена первая, либо что-то подобное.