мышь иногда дважды щелкает, когда я нажимаю один раз

У меня есть проблема, которая становится кошмаром, поскольку я думаю, что было бы проще просто полностью отказаться от Ubuntu и попробовать что-то еще. У меня есть ПК HP под управлением Ubuntu 12.04. Когда я щелкаю левой кнопкой мыши, иногда дважды (возможно, в 50% случаев).

До сих пор это приводило к: случайной отправке незаконченных электронных писем, случайному выделению и удалению вещей, которые я не хотел удалять, при написании электронных писем ( очень расстраивает), случайному удалению двух вкладок браузера вместо одного (несколько раз) и (в некотором смысле наиболее раздражающего) очень и очень разочаровывающего опыта конечного пользователя при попытке перемещения окон на рабочем столе или вырезания и вставки из окна терминала. Слава Богу, что Alt - F7 - но я не хочу изучать сочетания клавиш для каждой программы, которую я использую, а также для ОС (и не могу копипаста - большая потеря для меня).

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

  • Это не сломанная мышь. Я попробовал две мыши в моей системе - обе демонстрируют проблему. Обе эти мыши прекрасно работают на моем домашнем ноутбуке, на котором также установлена ​​Ubuntu 12.04.

  • My /etc/X11/xorg.conf имеет длину всего несколько строк и не имеет секции «InputDevice».

  • У меня нет hald или установлен пакет hal.

  • Это началось около недели назад, и, похоже, не становится лучше или хуже.

  • В отчаянии я только что обновился до 12.10, но это не устранило проблему, и теперь я использую дистрибутив, который не является LTS (и, следовательно, не идеален для меня:

Но это делает мою систему очень сложной в использовании.

Возможно важное обновление : я попытался провести некоторые исследования с xev. Мне кажется, что у этих мышей плохая связь - это часто встречается? Я могу удерживать кнопку мыши, а затем получить (щелчок мыши) (пауза) (отпускание мыши) (очень очень короткая пауза) (щелчок мыши) (пауза) (отпускание мыши) (очень очень короткая пауза) (щелчок мыши) и т. Д. Интересно, например, другие операционные системы говорят: «Вы не можете отпустить, а затем снова щелкнуть в течение 0,05 секунды, так что это должно быть сбой, и я буду считать, что кнопка не была отпущена». Могу ли я сказать Ubuntu игнорировать события отпускания и повторного нажатия почти мгновенно ??

Это похоже на проблему с мышью. Может быть, я должен выкопать более новую мышь? Я пробовал только очень старые: - \

38
задан 30.03.2020, 14:27

8 ответов

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

Мое решение: это сломанная мышь.

Точнее, активируемый при нажатии разъем немного устарел или загрязнен или что-то в этом роде, а иногда, удерживая кнопку нажатой, соединение устанавливается, а затем на мгновение разрывается, а затем снова устанавливается, вызывая двойной нажмите.


Возражение: Но мышь работает нормально, когда я подключаю ее к моей машине с Windows!

Счетчик: Не будет ли просто вставить в драйвер или ОС следующую строку псевдокода: «если пользователь отменит щелчок мыши, а затем щелкнет ее снова в течение 0,05 секунды, то это, вероятно, грязный разъем, поэтому давайте просто проигнорируем это». Таким образом, не возможно ли, что если вы переключите мышь на другой компьютер, работающий под управлением другой ОС и / или использующий другой драйвер на другом оборудовании (даже при использовании той же ОС вы вполне могли бы использовать другое оборудование, верно?), Вы могли бы получить разные результаты ?

Возражение: Но я попробовал другую старую мышь, и она показала ту же проблему!

Счетчик: удивительно, как две старые мыши из одной компании могут сломаться одинаково, а? И вы никогда не замечали, потому что у второй старой мыши, которую вы попробовали, не было проблем при подключении к другому оборудованию (см. Предыдущий счетчик).


Если вы действительно не верите, что ваша мышь сломана, протестируйте ее:

$ xev

, а затем найдите квадрат с черным фоном, нажмите на него и посмотрите результат. Вы определенно всегда получаете один чистый «щелчок» и ничего больше? Я часто получал чистый щелчок, но иногда «отскок» (щелчок без щелчка). Возможно, даже лучше:

$ xev | grep ButtonRelease

Теперь наведите мышью на квадрат с черным контуром (или где-нибудь в этом окне) и нажмите и отмените щелчок 20 раз. Вы должны получать строку «ButtonRelease» каждый раз, когда отпускаете кнопку, и никогда иначе. Я иногда получал один, когда нажимал.

Кошмар закончился.

47
ответ дан 30.03.2020, 14:29
  • 1
    Для меня это проявило как " кнопка 3" (правая кнопка мыши) отправка сигнала иногда, когда я прокрутил бы на моем колесе мыши. Причудливый. – Spooks 30.03.2020, 14:29
  • 2
    Со мной я потратил хороший 5-10 минуты, играя с xev и наблюдая вывод. Постоянно нажимая и не нажимая и т.д. и т.д. - и затем просто иногда получая неожиданные нещелчки, когда я wasn' t ненажатие. Позвольте мне сказать также, что, смотря на вывод xev на 80x24 окно терминала может быть очень вводящим в заблуждение, потому что " unclick-click" может привести ко всей странице, полной информации, производимой xev, и если щелчок нещелчка происходит достаточно быстро (который имел место в моем случае), тогда, Вы даже не могли бы быть в состоянии заметить вывод xev потому что it' s почти идентичный странице прежде. – Trenton Tyler 30.03.2020, 14:30
  • 3
    I' ve получил двух идентичных мышей, с которыми я заметил неожиданное нажатие недавно, и I' m не настолько уверенный оба просто ' носил out' та же неделя. Ваш xev тест didn' t дают мне что-либо необычное, но я должен задаться вопросом, существует ли больше к этому? – Trenton Tyler 30.03.2020, 14:30
  • 4
    Еще лучше xev | awk '/ButtonRelease/ {print $1,i++}'. – Justin Wood 30.03.2020, 14:31
  • 5
    Право - я был очень подозрителен о наличии двух мышей и ни одного из них работающий над одной машиной и обе работы над другим. Я вполне уверен существуют люди там, которые полагают, что действительно существует проблема кроме " мыши все поврежденные и ОС, не компенсирующая его, а также другой OS' s". с другой стороны, я определенно дезертировал с корабля этим утром - моя система работает снова, и я был убежден на прошлой неделе что мышь couldn' t быть проблемой, но для меня это действительно было. – Bartol Skeletaun 30.03.2020, 14:31

Spray WD40 - волшебство для многих проблем, включая колесо регулировки громкости в наушниках с шумом rac rac rac, также для устранения этой проблемы щелчков мыши…

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

1
ответ дан 30.03.2020, 14:28

Проблема объясняется здесь: http://www.eng.utah.edu/~cs5780/debouncing.pdf
- фильтрация отказов контактов. Программное обеспечение должно присутствовать в любом приложении, от простых одноплатных компьютеров до операционных систем, в той или иной форме.

https://www.google.se/?gfe_rd=cr&safe=off#q=%2Bcontact+%2Bbounce+%2Bsoftware&safe=off

в качестве контактов / кнопок с возрастом эффект будет ухудшаться. WD40 может быть не лучшим спреем для электроники, есть и другие, более подходящие. Google 'Contact spray'.

5
ответ дан 30.03.2020, 14:28

В программном обеспечении имеется ошибка, и по состоянию на июнь 2014 года ее не исправили. Это не происходит на всех моделях мышей. Мои мыши Logitech в порядке, но большинство других не справляются, что бы вы ни делали. Это для RHEL, CentOS и Ubuntu. Все мыши работают на чистых окнах, но та же проблема существует в KVM

Пока нет решения, разработчики знают об этом.

Ура. Дон.

2
ответ дан 30.03.2020, 14:30
  • 1
    Вы могли добавить ссылку к ошибке и дать немного фона об этом? – Marco G 30.03.2020, 14:30
  • 2
    Как Вы видите из других ответов (и отчет об ошибках), это не на самом деле ошибка, а скорее недостающая возможность. Windows делает debounce, фильтрующий на мышах по умолчанию, в то время как Linux doesn' t. – MonsterMMORPG 30.03.2020, 14:30
  • 3

Обслуживание дзен и мыши. Кажется, у многих возникают проблемы с двойным щелчком мыши, когда применяется один щелчок. Кнопка мыши представляет собой микровыключатель. Факт жизни состоит в том, что контакты переключателя отскакивают. Они на самом деле не подпрыгивают, но тереть. Мы будем называть это отказов в любом случае. По какой-то причине программисты сбросили мяч на этом. Для установления контактов перед чтением должна быть применена достаточная продолжительность цикла ожидания. По поводу ничего и на примере одного моего решения было разместить конденсатор через контакты переключателя. Я использовал колпачок 0,1 мкФ ни по какой другой причине, за исключением того, что у меня был колпачок небольшого размера, который бы идеально подходил для мыши. Я не проводил ни одного причудливого анализа времени задержки, постоянных времени или уровней принятия решений, чтобы найти оптимальное значение. В любом случае разные модели будут иметь разные параметры.

Я использовал эту модификацию в течение некоторого времени, и проблема до сих пор не всплыла.

Для применения мод. Найдите конденсатор небольших физических размеров, который поместится внутри корпуса мыши. Я использовал 0.1uF, потому что у меня был один, и это хорошее число, но другие значения, вероятно, будут работать, но не слишком большие или слишком маленькие. То, что слишком велико или мало, является предметом эксперимента. Слишком большое значение может повлиять на предполагаемые двойные щелчки, а слишком маленькое не приведет к желаемому эффекту. Я припаял одну ногу кепки в удобном месте, где она не выходила из-под внутренней структуры мыши, на медной стороне платы, к плоскости 0 вольт (земная плоскость, если хотите), я подключил другая часть колпачка к переключателю активна с небольшим количеством тонкого провода. Я использовал переработанный компонент с короткими ногами. У нового, вероятно, будет достаточно длинных ног, чтобы добраться туда, где это необходимо. Для этой работы вам понадобится подходящий паяльник с тонким наконечником.

Если вы не знаете конденсаторы. Конденсатор емкостью 0,1 мкФ может быть обозначен как 0,1 мкФ, или 104, или 100 нФ, или иметь коричнево-черные желтые полосы. Поверхностный тип установки также будет хорошим выбором. Зацепите его несколькими нитями тонкой проволоки. Может приклеить его к плате со стороны подключения вверх.

У меня есть план B, который я могу попробовать в следующий раз или, если текущий план в конечном итоге потерпит неудачу. Отключение микровыключателя для тактильного мембранного переключателя, установленного на плате SPST, должно решить проблему. Это тип переключателя, используемого в клавиатурах и клавиатурах, и не имеет этой проблемы. Нога печатает это не что иное как микровыключатель. Имеется переключатель высотой 7 мм, который входит на ту же высоту, что и существующий микровыключатель. Меньший переключатель должен быть расположен на правильной высоте. Согните ножки под прямым углом к ​​корпусу переключателя и приклейте его к плате так, чтобы привод совпадал с положением, занимаемым приводом микропереключателя. Кнопка мыши должна попасть в нужное место. Соедините контакты переключателя каким-нибудь тонким проводом, и все должно быть хорошо в теории.

9
ответ дан 30.03.2020, 14:30
  • 1
    Хотя Ваш ответ на 100% корректен, это - программное обеспечение Q& сайт, не аппаратные средства Q& A. Так: 1/добавляют значительное предупреждение это you' ре, дающее решение для HW для проблемы SW, 2/сокращаются, Ваш ответ 3/Добавляют некоторые ссылки к изображениям о том, как сделать этот 4/It' s µ F, не uF. – Sergio Cabral 30.03.2020, 14:31
  • 2
    @Joe 1/Взгляд upvotes для комментария. 2/Да, it' s стиль телеграммы без любых тонкостей, так, чтобы, возможно, было лучше. В мою защиту: I' m Vorlon, не Человек и I' m все еще работающий над моим сочувствием... ;-) – Alexa Adrian 30.03.2020, 14:31
  • 3
    @Fabby Ваши предложения (1) и (3) превосходны, но не так с (2), и (3), является мелким/ненужным. Также отрывается как немного придирчивый/краткий. Необходимо попытаться быть дружелюбными по отношению к новым пользователям!:) – Alex 30.03.2020, 14:32

В моем случае это была аппаратная или, точнее, какая-то механическая проблема с микропереключателем кнопки мыши.

У меня была эта проблема с двумя мышами: старой Logitech m-uv69 и другой мышью, которую я купил около года назад, и мне удалось отремонтировать обе из них без особых усилий. Это то, что я сделал:

  • снял верхнюю крышку мыши
  • , быстро быстро нажал маленькую кнопку микровыключателя много раз

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

1
ответ дан 30.03.2020, 14:31

Я собрал патч xserver-xorg-input-evdev для Ubuntu 14.10. Я использовал инструкции из http://blog.guntram.de/?p=16 (патч можно найти здесь и здесь ) и упаковку Debian руководство.

Вот мои заметки о создании пакета.

#!/bin/bash
# http://blog.guntram.de/?p=16
#

apt-get build-dep xserver-xorg-input-evdev

dquilt="quilt --quiltrc=${HOME}/.quiltrc-dpkg"

wget --output-document=evdev-debounce.patch http://blog.guntram.de/?ddownload=20
apt-get source xserver-xorg-input-evdev

cd xserver-xorg-input-evdev-*

$dquilt new debounce.patch
$dquilt add include/evdev-properties.h src/Makefile.am src/debounce.c src/evdev.c src/evdev.h src/debounce.c
patch -p1 <../evdev-debounce.patch

$dquilt refresh
$dquilt header -e

debuild -us -uc -b
cd ..

sudo dpkg -i xserver-xorg-input-evdev_*.deb
  • Хорошие новости: это сработало.
  • Плохие новости: это не всегда помогает. Мой контакт с кнопкой мыши был настолько плох, что потребовалась задержка в 200 мс, что не давало мне дважды щелкнуть мышью. Еще одна прыгающая мышь начала работать нормально.

edit : Спасибо @MatijaNalis, шаги получения патча могут быть:

wget https://aur.archlinux.org/packages/xf/xf86-input-evdev-debounce/xf86-input-evdev-debounce.tar.gz
tar xzf xf86-input-evdev-debounce.tar.gz
# ...
patch -p1 < ../xf86-input-evdev-debounce/debounce.patch
9
ответ дан 30.03.2020, 14:32
  • 1
    изменение потребностей сценария - " dquilt new" промахи " $ " " patch" должен быть после " $dquilt add" и прежде " $dquilt refresh" и патч на blog.guntram.de стар, нужно использовать другой с aur.archlinux.org. " склонный - получают DEP сборки xserver-xorg-input-evdev" должен также быть добавлен. Также должен использовать переменные среды стеганого одеяла вместо (неуказанных) файлов конфигурации - wiki.debian.org/UsingQuilt . Иначе, похож на большое обходное решение для поврежденной мыши... – Fattie 30.03.2020, 14:32
  • 2
    debouncing опция была добавлена к libinput 1.9 ( unix.stackexchange.com/a/451864/116842 ). – HockeyJ 30.03.2020, 14:33

У меня была проблема с двойным нажатием дополнительной кнопки. Как у меня уже было сопоставлено с xbindkeys (см. Как я могу назначить действия для всех моих кнопок мыши? для получения дополнительной информации об этом)) мое решение было изменить запись в ~/.xbindkeysrc следующим образом: [ 116]

"if [ ! -e /dev/shm/button ]; then touch /dev/shm/button; /usr/bin/xte 'keydown Control_L' 'key Page_Down' 'keyup Control_L'; sleep 0.2; rm  /dev/shm/button; fi"
b:7

Это создает «файл блокировки» для каждого нажатия кнопки в /dev/shm/ (которое, я надеюсь, находится в оперативной памяти) и удаляет его через 0,2 секунды. А команда xte должна выполняться по щелчку мыши и не должна выполняться дважды за 0,2 секунды.

(Просто подумал, что поделюсь своим решением на тот случай, если кто-нибудь захочет скопировать его или исправить.)

4
ответ дан 30.03.2020, 14:32
  • 1
    Это - отличное решение для случаев, куда мышь отправляет непрерывный поток событий ButtonPress/ButtonRelease, но Вы хотите преобразовать ее в единственное событие. Это происходит с, например, мышь Bluetooth Microsoft и наклонные кнопки колеса. – Bryan Legend 30.03.2020, 14:33

Теги

Похожие вопросы