Твіки миші та клавіатури

Більші черги вводу, коротше застигання при зависанні хука вводу, коротша затримка повтору клавіш. Ніщо з цього не змушує клік надходити раніше.

Що змінює цей розділ

Більші черги вводу, коротше застигання при зависанні хука вводу, коротша затримка повтору клавіш. Ніщо з цього не змушує клік надходити раніше.

НалаштуванняЩо воно робитьШлях у реєстрі
Розмір черги даних мишіПіднімає буфер звітів драйвера класу миші зі 100 до 150. Затримку це не скорочує; воно не дає миші з високою частотою губити звіти, коли потік читання зупиняється. Те саме значення пишеться й у mouhid, де нічого, що б його читало, не знайдено.HKLM\...\Services\mouclass + mouhid\Parameters\MouseDataQueueSize
Розмір черги даних клавіатуриПіднімає буфер звітів клавіш драйвера класу клавіатури зі 100 до 150. Затримку це не скорочує; воно лишає запас проти втрати вводу. Те саме значення пишеться й у kbdhid, де нічого, що б його читало, не знайдено.HKLM\...\Services\kbdclass + kbdhid\Parameters\KeyboardDataQueueSize
Обмежити, як довго завислий хук вводу блокує мишуWindows пропускає хук вводу, який перестав відповідати, коли спливає цей тайм-аут; це встановлює його на одну секунду — максимум, який дозволяють Windows 10 1709 і новіші. Типове значення, коли параметр не задано, не задокументоване й не вимірювалося. Хук, який лише сповільнюється під навантаженням, теж може бути відкинутий; перезапуск програми, якій він належить, повертає його.HKCU\Control Panel\Desktop\LowLevelHooksTimeout
Скоротити затримку повтору клавіш до найкоротшого крокуСкорочує пів секунди очікування перед повтором затиснутої клавіші до 250 мс (найкоротший крок) і ставить найшвидшу частоту повтору. Окремі натискання у грі крізь це не проходять; різницю видно в консолі, чаті та меню. Надто охоче під час набору? Скасуй на сторінці Fix.HKCU\Control Panel\Keyboard\KeyboardDelay + KeyboardSpeed

Як це застосувати

  1. Відкрий w0a
  2. Перейди на сторінку Твіки реєстру у лівому меню
  3. Знайди цей розділ і натисни Застосувати на потрібних тобі записах

У кожного запису своя кнопка, тому застосовувати весь розділ ніхто не вимагає — а якщо тобі потрібні всі, вгорі сторінки для цього є Застосувати все.

Як це скасувати

Два шляхи, і обидва працюють:

Повертає все, що було застосовано після тієї точки, разом із пізнішими контрольними точками, — вікно підтвердження каже саме це, перш ніж почати.

не читає резервну копію, тож працює навіть тоді, коли власного файлу резервної копії w0a вже немає.

Журнал скасування лежить у %ProgramData%\w0a\backup.json, поза твоїм профілем користувача.

Ризик

Усе тут — задокументовані значення, які Windows підтримує; нічого з цього не є рівнем ядра і нічого з цього не є незворотним. Чесне речення все одно таке: налаштування може не дати тобі жодної вимірної користі. Якщо ти застосував зміну й не відчув різниці, ти, найпевніше, маєш рацію — ці сторінки не продають тобі відчуття, вони кажуть тобі, що було змінено.

Якщо хочеш це виміряти, діє правило з як читати результат бенчмарку: змінюй по одній речі за раз і читай low, а не середнє.

Спершу — чесне речення

Жоден із чотирьох пунктів не змушує клік чи натискання клавіші дійти до гри раніше. Два роблять буфер глибшим, щоб ввід рідше губився, коли потік, який його читає, підвисає; один скорочує час, на який завислий хук вводу може заморозити мишу й клавіатуру; один змінює те, що робить затиснута клавіша. Чи змінює хоч один із них щось у матчі, не виміряно: втрачені звіти миші жодного разу не рахували зі збільшеною чергою і без неї, а таймаут хука має значення лише тоді, коли хук уже перестав відповідати.

Пункт за пунктом

Розмір черги даних миші — записує MouseDataQueueSize=150 (REG_DWORD) у HKLM\SYSTEM\CurrentControlSet\Services\mouclass\Parameters і те саме в HKLM\SYSTEM\CurrentControlSet\Services\mouhid\Parameters. Типово драйвер класу має 100, а в чистій Windows під mouhid значення немає взагалі. Це глибина черги, а не налаштування затримки: менша черга не може передати звіт раніше, вона лише раніше починає відкидати звіти, коли щось на мить перестає її розбирати, а на миші з частотою 8000 Гц відкинутий звіт — це втрачений ввід. 150 — це запас, за якого пам'ять черги не вважається безкоштовною. Відомо, що значення читає лише mouclass; пошук у mouhid.sys (10.0.26100.1) такої назви не знаходить, і цей запис лишається, доки його не виміряють. Значення читається під час завантаження драйвера: набуває чинності після перезавантаження.

Розмір черги даних клавіатури — те саме для клавіатури: KeyboardDataQueueSize=150 (REG_DWORD) у HKLM\SYSTEM\CurrentControlSet\Services\kbdclass\Parameters і HKLM\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters. Типово kbdclass має 100, а під kbdhid немає нічого; у kbdhid.sys такої назви теж немає. Набуває чинності після перезавантаження.

Обмежити, як довго завислий хук вводу блокує мишу — записує LowLevelHooksTimeout=1000 (REG_DWORD, мілісекунди) у HKCU\Control Panel\Desktop. Оверлеї, програми для макросів і чати ставлять низькорівневі хуки, крізь які по черзі проходить кожна подія вводу. У документації Microsoft сказано, що хук, який не повернув керування за цей час, пропускається — у Windows 7 і новіших мовчки видаляється, — і що починаючи з Windows 10 1709 1000 мс — це максимум, який дозволяє Windows. Секунди досить для хука, який просто зайнятий, і досить мало, щоб завислий не відчувався як заморожування. Компроміс: хук, який лише повільний під навантаженням, теж може бути скинутий; перезапуск тієї програми повертає його. Типово у Windows значення немає. Скільки Windows чекає в такому разі, Microsoft не каже, а ми не вимірювали. Набуває чинності після виходу із системи й повторного входу.

Скоротити затримку повтору клавіш до найкоротшого кроку — записує KeyboardDelay="0" і KeyboardSpeed="31", обидва REG_SZ, у HKCU\Control Panel\Keyboard. Windows постачається з "1" і "31". За даними Microsoft, 0 — це приблизно 250 мс, а 31 — приблизно 30 повторів на секунду; реальні цифри залежать від заліза. Рядки — тому що DWORD, записаний поверх них, Windows ігнорує. KeyboardSpeed записується навіть за типового значення 31: профіль спеціальних можливостей може залишити його нижчим. Набуває чинності після виходу із системи й повторного входу.

Як перевірити самому

reg query "HKLM\SYSTEM\CurrentControlSet\Services\mouclass\Parameters" /v MouseDataQueueSize
reg query "HKLM\SYSTEM\CurrentControlSet\Services\mouhid\Parameters" /v MouseDataQueueSize
reg query "HKLM\SYSTEM\CurrentControlSet\Services\kbdclass\Parameters" /v KeyboardDataQueueSize
reg query "HKLM\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters" /v KeyboardDataQueueSize
reg query "HKCU\Control Panel\Desktop" /v LowLevelHooksTimeout
reg query "HKCU\Control Panel\Keyboard" /v KeyboardDelay
reg query "HKCU\Control Panel\Keyboard" /v KeyboardSpeed

reg query виводить DWORD у шістнадцятковому вигляді: 150 — це 0x96, 100 — 0x64, 1000 — 0x3e8. Відсутність значення під mouhid чи kbdhid, як і відсутність LowLevelHooksTimeout, — це те, що має чиста Windows.

Чого цей розділ не робить

Він не чіпає швидкість вказівника. Колись один пункт примусово ставив MouseSensitivity на немасштабовану позначку 6/11, перекриваючи швидкість, яку люди обрали самі. Ігри, що читають raw input, цього значення ніколи не бачать, тож у грі воно не змінювало нічого, а поза грою змінювало все; його прибрали.

Він ніколи не робить чергу меншою. Одна з ранніх збірок записувала 20 — менше за типові 100 — під підписом, що обіцяв глибшу чергу; менша черга не може доставити звіт раніше, вона може лише раніше його втратити.

Поза цією сторінкою

На сторінці «Fix» картка Черги вводу повертає обидва значення черг; Частота і затримка повтору клавіш відновлює пару значень повтору, не чіпаючи мишу; Фокус вікон і допоміжні програми видаляє таймаут хука; Миша, клавіатура і сенсорна панель відновлює черги й пару значень повтору, а заразом скидає прискорення вказівника і сенсорну панель. Прискорення миші — окремий пункт на сторінці «Оптимізації», Вимкнути прискорення миші (стабільне прицілювання). Якщо клік здається запізнілим, Чому мій приціл запізнюється і Чому натискання клавіш запізнюються в іграх розбирають увесь ланцюжок.

Які налаштування Windows щось змінюють у грі, кому кожне допомагає і кому не дає нічого: Налаштування Windows 11 для ігор, які справді важать

w0a не змінює жодного налаштування Windows, поки ти не попросиш, а твік зберігає старе значення, перш ніж записати нове. Бути в курсі

Ця сторінка допомогла?

Чого бракувало або що не спрацювало? Ми читаємо кожну таку відповідь.

Якщо ця сторінка не розв'язала проблему, напиши нам — скажи, яку статтю ти читав, і ми виправимо статтю.