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

Очереди ввода больше, заморозка при зависшем перехватчике ввода короче, задержка автоповтора клавиш короче. Ничто из этого не заставляет клик доходить раньше.

Что меняет этот раздел

Очереди ввода больше, заморозка при зависшем перехватчике ввода короче, задержка автоповтора клавиш короче. Ничто из этого не заставляет клик доходить раньше.

НастройкаЧто она делаетПуть в реестре
Размер очереди данных мышиПоднимает буфер отчётов драйвера класса мыши со 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 поддерживает; ничего из этого не относится к уровню ядра и ничего не является необратимым. Честная фраза при этом остаётся такой: настройка может не дать тебе измеримой пользы. Если ты применил изменение и не чувствуешь разницы, ты, скорее всего, прав — эти страницы не продают тебе ощущение, они говорят, что именно было изменено.

Если хочешь измерить, действует правило из как читать бенчмарк: меняй по одной вещи за раз и смотри на низы, а не на среднее.

Сначала — честное предложение

Ни один из четырёх пунктов не заставляет клик или нажатие клавиши дойти до игры раньше. Два делают буфер глубже, чтобы ввод реже терялся, когда поток, который его читает, подвисает; один сокращает время, на которое зависший перехватчик ввода может заморозить мышь и клавиатуру; один меняет то, что делает зажатая клавиша. Меняет ли хоть один из них что-то в матче, не измерено: потерянные отчёты мыши ни разу не считали с увеличенной очередью и без неё, а тайм-аут перехватчика имеет значение, только когда перехватчик уже перестал отвечать.

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

Размер очереди данных мыши — записывает 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, пока ты не попросишь, а твик сохраняет старое значение, прежде чем записать новое. Сообщить мне

Эта страница помогла?

Чего не хватило или что не сработало? Мы читаем каждый такой ответ.

Если эта страница не решила проблему, напиши нам — скажи, какую статью ты читал, и мы её исправим.