Мышь иногда дважды щелкает, когда я нажимаю один раз
У меня есть проблема, которая становится кошмаром, поскольку я думаю, что было бы проще просто полностью отказаться от Ubuntu и попробовать что-то еще. У меня есть ПК HP под управлением Ubuntu 12.04. Когда я щелкаю левой кнопкой мыши, иногда дважды (возможно, в 50% случаев).
До сих пор это приводило к: случайной отправке незаконченных электронных писем, случайному выделению и удалению вещей, которые я не хотел удалять, при написании электронных писем (очень неприятно), случайному удалению двух вкладок браузера вместо одной (несколько раз) и (в некотором смысле самое раздражающее) очень разочаровывающий опыт конечного пользователя при попытке перемещения окон на рабочем столе или вырезания и вставки из окна терминала. Слава Богу, Alt-F7 - но я не хочу изучать сочетания клавиш для каждой программы, которую я использую, а также для ОС (и неспособность копировать-вставить - большая потеря для меня).
Я не единственный человек с этой проблемой, но поиск в Google указывает на то, что для этого может быть несколько причин; ни одно из исправлений, которые я прочитал онлайн, не сработало для меня. Позвольте мне пройти через все, включая исправления, которые сработали для других людей, но не для меня. Ох, у меня есть оптическая мышь HP.
Это не сломанная мышь. Я попробовал две мыши в моей системе - обе демонстрируют проблему. Обе эти мыши отлично работают на моем домашнем ноутбуке, также работающем под управлением Ubuntu 12.04.
мой
/etc/X11/xorg.conf
длиной всего несколько строк и не имеет раздела "InputDevice".У меня нет пакета hald или пакета hal.
Это началось около недели назад, и, кажется, не становится лучше или хуже.
В отчаянии я просто обновился до 12.10, но это не устранило проблему, и теперь я использую дистрибутив, который не является LTS (и, следовательно, не идеален для меня:-\)
Но это делает мою систему очень сложной в использовании.
Возможно важное обновление: я попытался провести некоторые исследования с xev. Мне кажется, что у этих мышей плохая связь - это часто встречается? Я могу удерживать кнопку мыши, а затем получить (щелчок мыши) (пауза) (отпускание мыши) (очень очень короткая пауза) (щелчок мыши) (пауза) (отпускание мыши) (очень очень короткая пауза) (щелчок мыши) и т. Д. Интересно, скажут ли, например, другие операционные системы: "Вы не можете отпустить, а затем снова щелкнуть в течение 0,05 секунды, так что это должно быть сбой, и я буду считать, что кнопка не была отпущена". Могу ли я сказать Ubuntu игнорировать события release-and-then-reclick-почти мгновенно??
Это похоже на проблему с мышью. Может быть, я должен выкопать более новую мышь? Я только попробовал очень старые
8 ответов
Хорошо, после тщательного тестирования с использованием xev на зараженной машине и переключения между разными мышами на разных системах, я думаю, что я решил эту проблему. Конечно YMMV.
Мое решение: это сломанная мышь.
Точнее говоря, разъем, активируемый при нажатии, устарел или загрязнен или что-то в этом роде, а иногда при удерживании кнопки соединение устанавливается, а затем на мгновение разрывается, а затем снова устанавливается, вызывая двойной щелчок.
Возражение: Но мышь работает нормально, когда я подключаю ее к своей машине с Windows!
Счетчик: Разве не было бы просто вставить в драйвер или ОС следующую строку псевдокода: "если пользователь щелкает мышью и затем щелкает ее снова в течение 0,05 секунды, то это, вероятно, грязный соединитель, так что давайте просто игнорируй это ". Таким образом, не возможно ли, что если вы переключите мышь на другой компьютер, работающий под управлением другой ОС и / или использующий другой драйвер на другом оборудовании (даже при использовании той же ОС вы вполне могли бы использовать другое оборудование, верно?), Вы могли бы получить разные результаты?
Возражение: Но я попробовал другую старую мышь, и она показала ту же проблему!
Счетчик: удивительно, как две старые мыши из одной компании могут сломаться одинаково, а? И вы никогда не замечали, потому что вторая старая мышь, которую вы попробовали, не показала проблем при подключении к другому оборудованию (см. Предыдущий счетчик).
Если вы действительно не верите, что ваша мышь сломана, проверьте это:
$ xev
а затем найдите квадрат с черным фоном, щелкните по нему и посмотрите результат. Вы определенно всегда получаете один чистый "щелчок" и ничего больше? Я часто получал чистый щелчок, но иногда "отскок"(щелчок без щелчка). Возможно, даже лучше:
$ xev | grep ButtonRelease
Теперь вставьте мышь в квадрат с черным контуром (или в любом месте в этом окне) и нажмите и отмените щелчок 20 раз. Вы должны получать строку "ButtonRelease" каждый раз, когда отпускаете кнопку, и никогда иначе. Я иногда получал один, когда нажимал.
Кошмар окончен.
Обслуживание дзен и мыши. Кажется, у многих возникают проблемы с двойным щелчком мыши, когда применяется один щелчок. Кнопка мыши представляет собой микровыключатель. Факт жизни состоит в том, что контакты переключателя отскакивают. Они на самом деле не подпрыгивают, но тереть. Мы будем называть это отказов в любом случае. По какой-то причине программисты сбросили мяч на этом. Для установления контактов перед чтением должна быть применена достаточная продолжительность цикла ожидания. По поводу ничего и на примере одного моего решения было разместить конденсатор через контакты переключателя. Я использовал колпачок 0,1 мкФ ни по какой другой причине, за исключением того, что у меня был колпачок небольшого размера, который бы идеально подходил для мыши. Я не делал каких-либо причудливых анализов времени пребывания, постоянных времени или уровней принятия решений, чтобы найти оптимальное значение. Различные модели будут иметь разные параметры в любом случае.
Я использовал эту модификацию в течение некоторого времени, и проблема еще не всплыла.
Чтобы применить мод. Найдите конденсатор небольших физических размеров, который поместится внутри корпуса мыши. Я использовал 0.1uF, потому что у меня был один, и это хорошее число, но другие значения, вероятно, будут работать, но не слишком большие или слишком маленькие. То, что слишком велико или мало, является предметом эксперимента. Слишком большой может повлиять на предполагаемые двойные клики, слишком малый не приведет к желаемому эффекту. Я припаял одну ногу кепки в удобном месте, где она не выходила из-под внутренней структуры мыши, на медной стороне платы, к плоскости 0 вольт (земная плоскость, если хотите), я подключил другая часть колпачка к переключателю активна с небольшим количеством тонкого провода. Я использовал переработанный компонент с короткими ногами. У нового, вероятно, будет достаточно длинных ног, чтобы добраться туда, где это необходимо. Для этой работы вам понадобится подходящий паяльник с тонким наконечником.
Если вы не знаете конденсаторы. Конденсатор емкостью 0,1 мкФ может быть обозначен как 0,1 мкФ, или 104, или 100 нФ, или иметь коричнево-черные желтые полосы. Поверхностный тип установки также будет хорошим выбором. Зацепите его несколькими нитями тонкой проволоки. Мог бы приклеить его к плате подключения стороной вверх.
У меня есть план B, который я могу попробовать в следующий раз или если текущий план в конечном итоге потерпит неудачу. Отключение микровыключателя для тактильного мембранного переключателя, устанавливаемого на плату spst, должно решить проблему. Это тип переключателей, используемых в клавиатурах и клавиатурах, и не имеют этой проблемы. Нога печатает это не что иное как микровыключатель Имеется переключатель высотой 7 мм, который входит на ту же высоту, что и существующий микровыключатель. Меньший переключатель должен быть расположен на правильной высоте. Согните ножки под прямым углом к корпусу переключателя и приклейте его к плате так, чтобы привод совпадал с положением, занимаемым приводом микропереключателя. Кнопка мыши должна попасть в нужное место. Соедините контакты переключателя каким-нибудь тонким проводом, и все должно быть хорошо в теории.
Я построил исправленный 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
Проблема объясняется здесь: 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 "Контактный спрей".
У меня была проблема с дополнительным нажатием кнопки дважды. Как я уже сопоставил это с xbindkeys
(см. Как я могу назначить действия всем моим кнопкам мыши? для получения дополнительной информации об этом) мое решение изменило запись в ~/.xbindkeysrc
следующее:
"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 секунды.
(Просто подумал, что поделюсь своим решением на тот случай, если кто-нибудь захочет скопировать или исправить его.)
В моем случае это была аппаратная или, точнее, какая-то механическая проблема с микропереключателем кнопки мыши.
У меня была эта проблема с двумя мышами: старой Logitech m-uv69 и другой мышью, которую я купил около года назад, и мне удалось отремонтировать обе из них без особых усилий. Вот что я сделал:
- снял верхнюю крышку мыши
- Прямо быстро нажал микропереключатель маленькую кнопку много раз
После этого почти все непреднамеренные двойные клики исчезли. Я не знаю, что именно вызвало их внутри микровыключателя. Возможно, он испачкался или что-то в этом роде, и быстрое нажатие заставляет грязь уходить
Существует программная ошибка, и по состоянию на июнь 2014 года ее не исправили. Это не происходит на всех моделях мышей. Мои мыши Logitech в порядке, но большинство других не справляются, что бы вы ни делали. Это для RHEL, CentOS и Ubuntu. Все мыши работают на чистых окнах, но такая же проблема есть в KVM
Пока нет решения, разработчики знают об этом.
Приветствия. Дон.
Спрей WD40 - волшебство для многих проблем, включая колесо громкости в наушниках с шумом rac rac rac, а также для устранения этой проблемы щелчков мыши…
Тест, это очень быстро, не нужно открывать мышь или открывать наушники, распылять и хорошо идти в другой раз...