Как стать автором
Обновить

Linux-поведение колесика в Windows с AHK

Уровень сложностиПростой

Если вы когда-нибудь пользовались Linux, то наверняка оценили одну из мелочей, к которой быстро привыкаешь — вставка по средней кнопке мыши. Выделил текст → ткнул колесиком → вставилось.

Переключившись на Windows, первое время постоянно ловишь себя на попытке «тыкнуть на среднюю кнопку мыши», но в ответ — либо ничего, либо скролл. Давайте это исправим. Делается всё просто с помощью AutoHotkey.

Что будем делать?

Хотим добиться вот такого поведения:

  • Если выделен текст, и вы нажали среднюю кнопку мыши, то он копируется.

  • Если ничего не выделено, и вы нажали среднюю, то вставляется ранее скопированное.

~MButton::
{
    ClipSaved := ClipboardAll  ; Сохраняем текущий буфер обмена
    Clipboard := ""            ; Очищаем, чтобы проверить факт копирования

    Send ^c                    ; Пробуем скопировать (Ctrl+C)
    Sleep 50                   ; Небольшая пауза — буфер может не сразу обновиться

    if (Clipboard != "")
    {
        ; Что-то скопировалось — ничего не делаем
    }
    else
    {
        ; Ничего не скопировалось — вставляем старый буфер
        Clipboard := ClipSaved
        SendInput ^v
    }
    return
}

Как установить

  1. Установите AutoHotkey (Используется V1.1) .

  2. Создайте .ahk-файл с содержимым скрипта.

  3. Добавьте его в автозагрузку или запускайте вручную.

  4. Можно сделать exe-шник и запускать там где нет среды AHK(правой клавишей на скрипте ➡ скомпилировать).

Заключение

Если по какой-то причине скрипт стал работать некорректно, его можно перезагрузить или закрыть, нажав на значок программы в системном трее правой кнопкой мыши, выбрав нужное действие.

Буду рад обратной связи от читателей, всем добра 👍

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.