Skip to content

Всё для WordPress, веб-разработки — и не только

🖱 Как переназначить кнопки мыши через AutoHotkey и ускорить работу

🖱 Как переназначить кнопки мыши через AutoHotkey и ускорить работу

Вы купили мышь с дополнительными кнопками, а пользуетесь только левой, правой и колёсиком. Кнопки под большим пальцем простаивают, хотя могли бы закрывать вкладки, переключаться между ними, дублировать клик и открывать инструменты разработчика. Месяц за месяцем вы тянетесь к клавиатуре за сочетаниями, которые мышь способна выполнять сама.

Проблема не в «неправильной» мыши. Проблема в том, что штатное ПО производителя либо не позволяет привязать к кнопке сложное действие, либо глючит при смене активного окна. Решение, заслать с кнопок «пустые» сигналы и перехватить их скриптом, который понимает контекст приложения.

💡 Быстрый обзор:

  • Назначаем дополнительным кнопкам мыши виртуальные клавиши F13-F24 через драйвер: они ничего не делают в системе, но скрипт их «слышит»
  • Устанавливаем AutoHotkey и пишем скрипт: для каждого приложения свой набор действий, от закрытия вкладки до удержания Alt в Photoshop
  • Через Window Spy цепляемся к любому exe-файлу: метод работает в браузере, редакторе кода, видеоплеере, где угодно

Что такое AutoHotkey и зачем он мыши

AutoHotkey (AHK), бесплатный язык автоматизации для Windows с открытым исходным кодом. Он умеет перехватывать нажатия клавиш и кнопок мыши, отправлять произвольные комбинации в активное окно и различать приложения по имени исполняемого файла. Именно последнее делает его идеальным слоем между «тупым» железом и софтом: одна и та же кнопка мыши делает разное в Chrome, Photoshop и на рабочем столе.

На момент написания актуальна версия AHK v2.0, она быстрее, строже к синтаксису и избавилась от устаревших команд вроде #NoEnv. Приводимые ниже скрипты написаны под v2, но логика переносится и на v1 (она всё ещё поддерживается для обратной совместимости).

Альтернатива без скриптов, утилита XMBC (X-Mouse Button Control) с графическим интерфейсом. Она тоже различает приложения, поддерживает до 10 слоёв на профиль и не требует ни строчки кода. Минус: переносимость между компьютерами нулевая, а возможности ограничены тем, что заложил разработчик. AHK гибче, скрипт копируется вместе с остальными настройками системы.

Шаг 1: привязываем кнопки к виртуальным клавишам F13-F24

Обычные функциональные клавиши (F1-F12) заняты, они что-то делают в каждом приложении. Но Windows знает и F13-F24, это реально существующие скан-коды, на которые ни одна программа не вешает обработчики по умолчанию. Они идеальны как «пустышки»: драйвер мыши шлёт системе F15, система никому его не передаёт, кроме нашего AHK-скрипта.

Привязка через драйвер мыши

Откройте фирменное ПО вашей мыши, Logitech G Hub, Razer Synapse, SteelSeries Engine или универсальное. Найдите вкладку назначения кнопок и для каждой дополнительной кнопки выберите «Назначить клавишу» или «Keystroke assignment». Введите F13, F14, F15…, по одной на каждую кнопку. Не бойтесь, что физически клавиш F13-F24 на клавиатуре нет: драйвер отправит скан-код, и Windows его примет.

Как «нажать» F15, если такой кнопки нет? Сохраните этот AHK-сниппет в файл send.ahk и запустите:

1; send.ahk — эмулирует нажатие F15 через 5 секунд
2Sleep 5000
3Send "{F15}"
4ExitApp

Запустите, быстро переключитесь в окно драйвера мыши, кликните в поле «Назначить клавишу», через 5 секунд AHK пошлёт F15, драйвер его зарегистрирует. Повторите для каждой кнопки, меняя номер F-клавиши.

Окно назначения клавиш в драйвере мыши с выбором функциональной клавиши

Шаг 2: ставим AutoHotkey и создаём базовый скрипт

Скачайте AHK с официального сайта (выбирайте версию v2.0). После установки создайте текстовый файл с расширением .ahk, например, mouse.ahk. Базовая шапка скрипта:

1; mouse.ahk — базовая настройка AHK v2
2#Requires AutoHotkey v2.0
3SendMode "Input"
4SetWorkingDir A_ScriptDir
5SetTitleMatchMode 2
6#MaxHotkeysPerInterval 300
7#InstallMouseHook

Разбор: SendMode "Input", самый быстрый и надёжный метод отправки нажатий; SetTitleMatchMode 2, ищет подстроку в заголовке окна (достаточно части названия); #InstallMouseHook, активирует перехват кнопок мыши на низком уровне.

Автозапуск при старте Windows

Нажмите Win+R, введите shell:startup, откроется папка автозагрузки. Зажмите Alt и перетащите mouse.ahk в эту папку: создастся ярлык. Скрипт будет запускаться вместе с системой. Редактировать .ahk-файл удобно в Sublime Text или Notepad++, оба подсвечивают синтаксис AHK.

Шаг 3: пишем скрипт для браузера

Браузер, полигон для кнопок мыши. Вот раскладка, покрывающая основные навигационные действия:

1; Chrome / любой браузер на Chromium
2#HotIf WinActive("ahk_exe chrome.exe") or WinActive("ahk_exe msedge.exe")
3 ; Ctrl+W = закрыть вкладку
4 F14::Send "^w"
5 ; Ctrl+Shift+C = инструменты разработчика (inspect element)
6 F22::Send "^+c"
7 ; Ctrl+PageDown = следующая вкладка
8 F16::Send "^{PgDn}"
9 ; Ctrl+PageUp = предыдущая вкладка
10 F17::Send "^{PgUp}"
11 ; Alt+Left = назад по истории
12 F18::Send "!{Left}"
13 ; F5 = перезагрузить вкладку
14 F20::Send "{F5}"
15 ; Ctrl+Shift+T = восстановить закрытую вкладку
16 F23::Send "^+t"
17#HotIf

Скопируйте блок в mouse.ahk, заменив номера F-клавиш на те, которые вы назначили в драйвере. После сохранения файла нажмите Ctrl+R (Reload script) из трей-меню AHK, новые привязки заработают мгновенно, без перезагрузки браузера.

#HotIf ограничивает действие блока, кнопки работают только когда Chrome или Edge в фокусе. Переключились в проводник, те же F14-F23 могут делать другое или ничего.

Шаг 4: скрипт для Photoshop и графического планшета

Пример посложнее: Photoshop, где кнопки не просто шлют сочетание, а удерживают клавишу-модификатор. Это незаменимо при работе с пером Wacom, кнопки на пере включают пипетку цвета и перетаскивание холста:

Окно настроек кнопок пера Wacom с назначением функциональных клавиш
1; Adobe Photoshop
2#HotIf WinActive("ahk_exe photoshop.exe")
3 ; Удерживать Alt = пипетка цвета (пока кнопка нажата)
4 F14::
5 {
6 if !GetKeyState("Alt")
7 Send "{Alt down}"
8 }
9 F14 Up::Send "{Alt up}"
10
11 ; Alt+Ctrl+Z = шаг назад (вместо простого Undo)
12 F16::Send "!^z"
13
14 ; Shift+Ctrl+Z = шаг вперёд
15 F17::Send "+^z"
16
17 ; Удерживать Space = перетаскивание холста
18 F18::
19 {
20 if !GetKeyState("Space")
21 Send "{Space down}{Click down}"
22 }
23 F18 Up::Send "{Space up}{Click up}"
24
25 ; Ctrl+S = сохранить
26 F19::Send "^s"
27
28 ; Ctrl+N = новый документ
29 F20::Send "^n"
30
31 ; Alt+Shift+Ctrl+S = Export → Save for Web
32 F23::Send "!+^s"
33#HotIf

Обратите внимание на конструкцию F14:: с фигурными скобками, это многострочный хоткей. GetKeyState("Alt") страхует от повторного зажатия модификатора, если кнопка дрогнула. F14 Up:: срабатывает при отпускании, возвращает Alt в исходное положение.

Тот же подход примени́м к любому софту, где нужны модификаторы: Figma (Space для драг-хенда), Blender (Shift для точного перемещения), DaVinci Resolve (Alt для копирования клипа).

Шаг 5: глобальные действия по умолчанию

Когда ни одно из приложений не в фокусе, кнопки делают что-то универсальное:

1; Глобальные привязки (работают везде, где нет специфичного #HotIf)
2F14::Send "{Backspace}" ; назад (аналог браузерной кнопки)
3F15::Send "{Click 2}" ; двойной клик
4F19::Send "{MButton}" ; средняя кнопка (удобнее чем жать на колёсико)
5F21::Send "#d" ; Win+D = свернуть все окна (boss key)

Двойной клик одной кнопкой, личный фаворит автора оригинальной методики. После недели использования физический дабл-клик вызывает недоумение: зачем стучать дважды, если можно один раз?

Альтернатива без кода: X-Mouse Button Control

Если скрипты не ваш путь, присмотритесь к X-Mouse Button Control (XMBC). Это бесплатная утилита с графическим интерфейсом, которая умеет то же самое: профили под конкретные .exe, до 10 слоёв на профиль, переключение слоёв по горячей клавише.

Плюсы XMBC: ставится за минуту, настройка, выбор действия из выпадающего списка, не надо править код. Минусы: меньше гибкости (нельзя написать условие с GetKeyState), а конфигурация живёт в реестре и редко выживает при переезде на другой компьютер. Для базовых сценариев («закрыть вкладку», «переключить трек»), отличный выбор. Для многоэтажных конструкций с удержанием модификаторов, только AHK.

Как целить скрипт в любое приложение через Window Spy

Чтобы добавить поддержку новой программы, нужно узнать имя её исполняемого файла. В трее нажмите правой кнопкой на значок AHK и выберите Window Spy. Кликните на окно целевой программы, Window Spy покажет:

  • Window Title, заголовок окна (можно целить по нему)
  • ahk_exe, имя процесса (например firefox.exe или code.exe или notion.exe)
  • ahk_class, класс окна (полезно для различения диалогов внутри приложения)

Добавьте новый блок в mouse.ahk:

1#HotIf WinActive("ahk_exe firefox.exe")
2 F14::Send "^w"
3 ; ... ваши действия
4#HotIf

Сохраните, Ctrl+R для перезагрузки скрипта, готово. Приём универсален: видеоплееры (VLC, PotPlayer), мессенджеры (Telegram, Discord), IDE (VS Code, PhpStorm), файловые менеджеры, всё, что имеет .exe.

Бонус: управление музыкой глобальными медиа-клавишами

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

1; Управление медиа — работает всегда
2F18::Send "{Media_Prev}" ; предыдущий трек
3F19::Send "{Media_Play_Pause}" ; пауза / воспроизведение
4F20::Send "{Media_Next}" ; следующий трек
5F22::Send "{Volume_Down}" ; тише
6F23::Send "{Volume_Up}" ; громче
7F14::Send "{Volume_Mute}" ; выключить звук

Работает с любым плеером, который слушается системные медиа-события: Spotify, YouTube Music (PWA), AIMP, foobar2000, даже встроенный проигрыватель Windows.

⁉️🤔 Частые вопросы

Зачем нужны F13-F24, если AHK может перехватывать нажатия мыши напрямую?

AHK различает кнопки мыши как XButton1 и XButton2, это только две дополнительных. У игровых мышей их бывает 8-12, и драйвер всё равно выступает посредником. Связка «драйвер → F13-F24 → AHK» масштабируется на любое количество кнопок, а драйвер не пытается выполнить действие самостоятельно, он просто шлёт код клавиши. Если скрипт AHK упадёт, кнопки мыши перестанут что-либо делать, а не начнут выполнять неожиданные макросы из драйвера.

Работает ли метод на Windows 11?

Да. F13-F24, это стандартные скан-коды USB HID, они не привязаны к версии Windows. AHK v2.0 официально поддерживает Windows 10 и 11. На ARM-версиях Windows (Surface Pro X) некоторые драйверы мышей могут не отдавать виртуальные клавиши, но Logitech G Hub и Razer Synapse работают без проблем.

Что делать, если драйвер мыши не даёт назначить F13-F24?

Некоторые офисные мыши с урезанным ПО ограничены F1-F12. Варианта два: попробовать утилиту X-Mouse Button Control, она умеет назначать F13-F24 независимо от модели мыши, либо использовать XButton1/XButton2 напрямую в AHK. Всего две кнопки, но для старта хватит.

Можно ли перенести скрипт на другой компьютер?

Да. Скопируйте файл mouse.ahk и папку с AutoHotkey Portable (есть на официальном сайте). Переназначьте кнопки в драйвере мыши на новом ПК на те же F-клавиши, всё заработает без изменений в коде скрипта.

Не замедляет ли AHK работу системы?

В простое AHK потребляет менее 5 МБ оперативной памяти и 0% процессора, официальная документация подтверждает минимальный footprint. Хук срабатывает только при нажатии отслеживаемой клавиши, в остальное время скрипт спит. Для сравнения: фирменное ПО Razer Central в простое «весит» 200-400 МБ.

Стоит ли овчинка выделки

Первичная настройка занимает минут 20: привязать кнопки в драйвере, скопировать сниппеты, поправить номера F-клавиш под себя. Дальше скрипт живёт годами и переезжает с компьютера на компьютер вместе с остальным конфигом. Отдачи, две.

Первая: экономия микродвижений. Закрытие вкладки без Ctrl+W (одно нажатие вместо двух), переключение вкладок без Ctrl+Tab, цветопипетка в Photoshop без отрыва пера от планшета. За день набираются сотни операций, каждая по отдельности копеечная, вместе, часы за год.

Вторая: эффект «магии». Когда коллега смотрит на ваш экран и не понимает, как вы переключаетесь между окнами, не касаясь клавиатуры, это производит впечатление. За этим стоит не магия, а 40 строк AHK и полчаса настройки.

Если работаете с мышью по 6+ часов в день, настройте кнопки. Первая неделя непривычна, вторая, удобна, через месяц вы перестанете понимать, как люди живут без этого.

Вот видео, где метод разбирается от установки до первого скрипта: