7

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

По логике должен быть способ установить минимальный интервал времени двойного щелчка!

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

Сначала я хочу попытаться позволить компьютеру справиться со сломанной мышью. Я ищу исправления для Windows и особенно для Linux (Ubuntu) систем.

E: как заметил Мэтт Экерт, проблема в том, что переключатель мыши ослаблен и выдает два сигнала одним нажатием клавиши. Я никогда не упоминал, что хочу что-то настроить с помощью мыши. Извините за недоразумение, я думал, что эта проблема возникает очень часто, так что все понимают проблему с предоставлением информации.

В Windows есть только опция для установки максимального интервала времени, в течение которого распознается двойной щелчок. Мне нужно установить минимальный интервал времени. Другими словами, двойной щелчок должен распознаваться только в том случае, если разница во времени между двумя щелчками мыши составляет, по меньшей мере, например половину миллисекунды.

2 ответа2

5

Для решения Linux: http://blog.guntram.de/?p=16

Это может работать в каждом дистрибутиве, если вы перекомпилируете evdev и примените патч. Ниже извлечено из этой ссылки:

  • Получить событие-debounce-patch, либо скопировав / вставив из исходного поста автора или из моего зеркала.

  • Установите исходный код evdev и среду сборки и скомпилируйте его. Предупреждение: первый apt-get установит исходный код в подкаталог вашего текущего каталога, поэтому сначала перейдите на что-нибудь подходящее.

    apt-get source xserver-xorg-input-evdev-dev
    sudo apt-get build-dep xserver-xorg-input-evdev-dev
    cd xserver-xorg-input-evdev-2.8.2/
    patch -p 1 < ../evdev-debounce.patch
    dch -i
    debuild -us -uc -b
    cd ..
    
  • Это даст вам файл с именем xserver-xorg-input-evdev_2.8.2-1ubuntu2_amd64.deb в каталоге, из которого вы начали. Или x86 вместо amd64, если вы работаете в 32-битной системе. Если вы не хотите компилировать себя, вы можете скачать файл с моего зеркала. Это для Ubuntu 14.04, поэтому в зависимости от того, когда вы это прочитаете, мой файл будет устаревшим, и вам придется создавать его самостоятельно.

  • Установите этот файл .deb, используя

    sudo dpkg -i xserver-xorg-input-evdev_2.8.2-1ubuntu2_amd64.deb
    
  • Теперь выйдите и войдите снова; это должно запустить X-сервер и загрузить новый пакет.

  • Следующим является настройка debouncing; без конфигурации, новое программное обеспечение ничего не меняет. Используйте xinput –list, чтобы узнать идентификатор вашего устройства мыши - в моем случае это мышь Razer, ID = 10:

    $ xinput --list
     ⎡ Virtual core pointer id=2 [master pointer (3)]
     ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
     ⎜ ↳ Razer Razer Copperhead Laser Mouse id=10 [slave pointer (2)]
     ⎣ Virtual core keyboard id=3 [master keyboard (2)]
     ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
     ....
    
  • Когда вы знаете свой идентификатор устройства мыши, перечислите свойства этого устройства. Одним из свойств - обычно последним - является новая задержка отладки. Вам понадобится его идентификатор (в данном случае 286):

    $ xinput --list-props 10
     .....
     Evdev Debounce Delay (286): 0
     .....
    
  • Наконец, измените свойство на максимальное значение, чтобы отменить. Если вы установите слишком высокое значение, быстрый "двойной щелчок" также может быть "отклонен" - для меня хорошо работает значение 20, если ваши переключатели мыши сильно изношены, вы можете использовать 50:

    $ xinput --set-prop --type=int --format=32 10 286 20
    
  • Как только вы найдете нужное вам значение, вы можете поместить указанную выше команду в ваш $ HOME / .xprofile. Или, чтобы установить системный файл конфигурации, поместите следующее в /usr/share/X11/xorg.conf.d/12-evdev-debounce.conf - этот файл новый, и для его записи вам нужно быть пользователем root :

    Section "InputClass"
     Identifier "evdev pointer debounce"
     MatchIsPointer "on"
     MatchDriver "evdev"
     Option "DebounceDelay" "20"
     EndSection
    
5

То, что вы ищете, это программный дебоунсер.

В этой теме есть два решения AutoHotkey для Windows.

Первый - это короткий скрипт от пользователя HotKeyIt:

LButton::   
    If (A_TimeSincePriorHotkey < 150) ;hyperclick
        Return
    Click Down
    KeyWait, LButton
    Click Up
Return

И тогда есть более длинное решение: Buggy-Mouse.ahk - Исправление глючной мыши.Остановите двойной щелчок при попытке щелкнуть один раз.

Что касается Linux, вы можете попробовать использовать IronAHK, порт AutoHotkey для платформ с поддержкой Mono, хотя я не уверен в его возможностях.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .