миша іноді двічі клацне, коли я клацну один раз


39

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

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

Я не єдина людина, яка має цю проблему, але гуглінг вказує на те, що для цього може бути кілька причин; жоден з виправлень, які я прочитав в Інтернеті, не працював на мене. Дозвольте мені пройти все, включаючи виправлення, які працювали для інших людей, але не для мене. Ой - у мене оптична миша в HP.

  • Це не зламана миша. Я спробував двох мишей у своїй системі - обидві виявляють проблему. Обидва ці миші чудово працюють на моєму домашньому ноутбуці, також працює Ubuntu 12.04.

  • У мене /etc/X11/xorg.confвсього кілька рядків і не має розділу "InputDevice".

  • У мене не було встановлено халда чи пакету hal.

  • Він розпочався близько тижня тому, і, здається, не стає ні кращим, ні гіршим.

  • У відчаї я щойно перейшов до 12.10, але це не вирішило проблеми, і тепер я запускаю дистрибутив, який не є LTS (а значить, для мене не ідеально: - \)

Але це робить мою систему дуже важкою у використанні.

Можливо, важливе оновлення : я спробував провести деякі дослідження з xev. Мені здається, це виглядає як поганий зв’язок у цих мишей - це звичайне явище? Я можу утримувати кнопку миші, а потім отримати (клацання миші) (пауза) (випуск миші) (дуже коротка пауза) (натискання миші) (пауза) (випуск миші) (дуже дуже коротка пауза) (клацання миші) тощо Цікаво, чи, наприклад, інші операційні системи говорять, що "ви не можете випустити, а потім натисніть ще раз протягом 0,05 секунд, так що, мабуть, виникли збої, і я припускаю, що кнопка ніколи не відпускалася". Чи можу я сказати Ubuntu, щоб ігнорувати події випуску, а потім повторно натисніть майже миттєво ??

Це так виглядає як проблема поганої миші. Можливо, я повинен викопати нову мишу? Я спробував лише дуже старі: - \


Ви повідомили про це як про помилку на панелі запуску?
Альвар

Чи можете ви пригадати, що сталося тиждень тому, коли все почалося?
hytromo

Що сталося тиждень тому, - це саме те, що відбувається щотижня - я просто натискаю "встановити оновлення" та періодично "перезавантажувати комп'ютер, щоб закінчити встановлення". Ця система вийшла прямо з коробки - я думаю, що єдині пакунки, які я встановив, крім тих, які там за замовчуванням були, були нечисленними мені потрібними для запуску sparkleshare.
Кевін Канюк

@Alvar: на панелі запуску, мабуть, виникає плутанина щодо цієї помилки. Моє загальне враження, що деякі люди отримують цю проблему, і проблема полягає в тому, що їхня миша зламана, деякі люди отримують цю проблему, а проблема - якийсь драйвер Logitech, а деякі люди отримують цю проблему, і проблема десь в іншому місці. Я спробую повідомити про це і зменшити шум ...
Кевін Баззард

Я потрапив у відповідну проблему, яку я вважав зламаною мишею в поєднанні з жестами Firefox, але виявилося, що це бічні кнопки миші, які роблять "firefox back"
Matija Nalis

Відповіді:


47

ОК після обширного тестування з використанням xev на ураженій машині та переключення між різними мишами на різних системах, я вважаю, що я вирішив цю проблему. Звичайно YMMV.

Моє рішення: це зламана миша.

Точніше, роз'єм, що активується при натисканні, трохи старий, брудний чи щось таке, а іноді при натисканні кнопки з'єднання встановлюється, а потім миттєво розривається, а потім робиться знову, викликаючи подвійне клацання.


Заперечення: Але миша працює чудово, коли я підключаю її до своєї машини Windows!

Лічильник: Чи не просто тривіально було б вставити у драйвер чи ОС наступний рядок псевдокоду: "якщо користувач видаляє клавішу миші, а потім знову натисне на неї протягом 0,05 секунд, то це, мабуть, брудний роз'єм, тож давайте просто ігноруй це ". Таким чином, чи не можливо, якщо переключити мишу на інший комп'ютер, на якому працює інша ОС та / або використовувати інший драйвер на іншому апаратному забезпеченні (навіть з тією ж ОС, ви цілком можете використовувати інше обладнання, правда?), Ви могли б отримати різні результати ?

Заперечення: Але я спробував ще одну стару мишку, і вона виявила ту саму проблему!

Лічильник: дивовижно, як дві старі миші з однієї компанії можуть зламатися однаково, так? І ви ніколи не помічали, тому що друга стара миша, яку ви спробували, не мала проблем під час підключення до іншого обладнання (див. Попередній лічильник).


Якщо ви дійсно не вірите, що ваша миша зламана, то протестуйте її:

$ xev

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

$ xev | grep ButtonRelease

Тепер приклейте мишу до квадрата чорним контуром (або де-небудь у цьому вікні) та натисніть та зніміть 20 разів клацніть. Ви повинні отримувати рядок "ButtonRelease" щоразу, коли ви відпускаєте кнопку, і ніколи інакше. Я час від часу отримував би один, коли натискав.

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


У мене є дві однакові миші, з якими я нещодавно помітив несподіване клацання, і я не такий впевнений, що обидва просто "носили" той же тиждень. Ваш xevтест не дав мені нічого незвичайного, але я мушу задуматися, чи є в цьому більше?
Том Броссман

Правильно - я дуже підозріло ставився до двох мишей, і жодна з них не працювала на одній машині, а обидві працювали на іншій. Я впевнений, що там є люди, які вважають, що насправді існує проблема, окрім як "миші всі зламані, а ОС не компенсує це, як і інші ОС". З іншого боку, я точно вискочив судно сьогодні вранці - моя система знову працює, і я минулого тижня переконався, що миша не може бути проблемою, але для мене це було насправді.
Кевін Канюк

2
Зі мною я провів добрі 5-10 хвилин, граючи з xev і переглядаючи вихід. Постійно клацаючи та знімаючи натискання тощо тощо - а потім періодично отримувати несподівані видалення, коли я не знімав натискання. Дозвольте сказати також, що перегляд виводу xev у вікні терміналу 80x24 може бути дуже оманливим, оскільки "неклітневий клік" може призвести до того, що xev виведе всю сторінку, повну інформації, і якщо нетиснене клацання відбувається досить швидко (що було в моєму випадку), то ви, можливо, навіть не зможете помітити вихід xev, тому що він майже ідентичний попередній сторінці.
Кевін Канюк

7
Ще краще xev | awk '/ButtonRelease/ {print $1,i++}'.
arekolek

Для мене це проявлялось як "кнопка 3" (права кнопка миші), що періодично посилає сигнал, коли я прокручую вгору на колесо миші. Химерність.
карбокація

9

Технічне обслуговування дзен та миші. Здається, у багатьох виникає проблема з подвійним клацанням миші, коли застосовується один клік. Кнопка миші - мікроперемикач. Фактом життя є те, що комутаційні контакти підстрибують. Вони насправді не відскакують, а труться. Ми все одно будемо називати це відскоком. Чомусь програмісти кинули м'яч на цьому. Цикл очікування достатньої тривалості повинен бути застосований, щоб контакти відстоялися перед читанням. Нічого, і на зразок одного мого рішення було розмістити конденсатор через контакти комутатора. Я використовував шапку 0,1uF без особливих причин, крім того, що у мене був невеликий розмір, який би добре помістився всередині миші. Я не робив фантазійних аналізів часу перебування, констант часу або рівнів рішення, щоб знайти оптимальне значення. Різні моделі все одно матимуть різні параметри.

Я використовую цю модифікацію вже деякий час, і проблема досі не з’явилася.

Щоб застосувати мод. Знайдіть конденсатор невеликих фізичних розмірів, який поміститься всередині корпусу миші. Я використовував 0.1uF, тому що у мене був такий, і це приємне число, але інші значення, ймовірно, спрацюють, але не надто великі або занадто малі. Занадто велика чи мала - це питання для експерименту. Занадто великий може вплинути на передбачувані подвійні клацання, занадто малий не досягне бажаного ефекту. Я припаяв одну ногу ковпачка до зручного місця, де воно не порушило внутрішню структуру миші, на мідній стороні дошки, до площини 0 вольт (земна площина, якщо хочете). інша нога ковпачка до вимикача активна з трохи тонкого дроту. Я використовував перероблений компонент з короткими ногами. Новий, швидше за все, матиме досить довгі ноги, щоб дістатися туди, де це потрібно. Для роботи вам знадобиться відповідний паяльник з дрібним наконечником.

Якщо ви не знаєте конденсаторів. Конденсатор 0,1 uF може бути позначений 0,1uF або 104 або 100nF або мати смуги коричневого чорного жовтого кольору. Хорошим вибором також буде тип поверхневого кріплення. Причепіть його декількома нитками тонкого дроту. Можна було приклеїти його до борту з'єднання стороною вгору.

У мене є план Б, який я можу спробувати наступного разу, або якщо поточний план врешті-решт не вдасться. Розв’язання мікровимикача для тактильної мембранної перемикача на монтажному ПК може бути вирішено. Це тип комутатора, який використовується на клавіатурах та клавіатурних панелях, і не проявляє цієї проблеми. Ніжка друкує це не що інше, як мікроперемикач. Випускається вимикач висотою 7 мм, який буде підходити на тій же висоті, що і існуючий мікроперемикач. Менший вимикач повинен бути розміщений на правильній висоті. Зігніть ноги під прямим кутом до корпусу вимикача і приклейте його до плати так, щоб привід вирівнявся з положенням, яке займає привід мікровимикача. Кнопка миші повинна потрапити в потрібне місце. Підключіть контакти комутатора за допомогою тонкого дроту, і в теорії все повинно бути добре.


5
Хоча ваша відповідь на 100% правильна, це веб-сайт із питань програмного забезпечення, а не апаратний Q&A. Тому, будь ласка: 1 / додайте поважне попередження про те, що ви даєте рішення HW для проблеми SW, 2 / скоротіть свою відповідь 3 / Додайте кілька посилань на фотографії про те, як це зробити 4 / It µF, not uF.
Fabby

@Fabby Ваші пропозиції (1) та (3) є відмінними, але не так вже й з (2), а (3) - дріб'язкові / непотрібні. Також виходить як трохи химерний / короткий. Ви повинні намагатися бути привітними до нових користувачів! :)

@Joe 1 / Подивіться відгуки на коментарі. 2 / Так, це стиль телеграми без будь-яких смаків, так що могло бути і краще. На захист: я Ворлон , а не людина, і я все ще працюю над своєю емпатією ... ;-)
Fabby

9

Я створив патч 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 м, що не дозволяє мені двічі клацнути. Ще одна підстрибуюча миша почала чудово працювати.

редагувати : Спасибі @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

1
сценарій потребує змін - "dquilt new" пропускає "$", "патч" повинен бути після "$ dquilt add" і перед "$ dquilt refresh", а патч на blog.guntram.de старий, слід використовувати інший з aur .archlinux.org. "apt-get build-dep xserver-xorg-input-evdev" також слід додати. Також слід використовувати змінні середовища ковдр замість (не визначених) конфігураційних файлів - wiki.debian.org/UsingQuilt . Інакше виглядає чудовим способом вирішення зламаної миші ...
Matija Nalis

3
До лібінпуту 1.9 додано функцію деблокування ( unix.stackexchange.com/a/451864/116842 ).
Jérôme

5

Проблему, пояснену Джеком Ганссом, тут: 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 "Контактний спрей".


4

У мене виникла проблема із додатковим натисканням кнопки двічі. Оскільки я вже мав це на карті 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

Це створює "lockfile" для кожного натискання кнопки /dev/shm/(що, сподіваюся, лежить на оперативній пам'яті) і видаляє його через 0,2 секунди. І xteкоманда повинна виконуватися при натисканні миші і не повинна виконуватися двічі за 0,2 секунди.

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


Це відмінне рішення для випадків, коли миша надсилає безперервний потік подій ButtonPress / ButtonRelease, але ви хочете перетворити його в одну подію. Це відбувається, наприклад, з клавішею миші Microsoft Bluetooth та кнопками нахилу колеса.
Лев Алексєєв

2

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

Рішення поки що немає, розробники не знають про це.

Ура. Дон.


1
Чи можете ви додати посилання на помилку та дати трохи інформації про неї?
Олі


1
Як видно з інших відповідей (і звіту про помилку), це насправді не помилка, а скоріше відсутня функція. Windows дебютує фільтрацію на мишах за замовчуванням, тоді як Linux - ні.
Hjulle

1

Спрей WD40 є магією для багатьох проблем, включаючи гучність колеса в навушниках з шумами rac rac rac, також для вирішення цієї проблеми клацанням миші…

Тест, дуже швидкий, не потрібно відкривати мишу чи відкривати навушники, розпорошувати та йти добре іншим разом…


1

У моєму випадку це було обладнання або, точніше, якась механічна проблема з мікроперемикачем кнопки миші.

У мене була ця проблема з 2 мишами: старою Logitech m-uv69 та ще однією мишкою, яку я придбав близько року тому, і мені вдалося відремонтувати їх обох без особливих зусиль. Ось що я зробив:

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

Після цього майже всі ненавмисні подвійні кліки пішли. Я не знаю, що саме викликало їх всередині мікро комутатора. Можливо, воно забруднилося чи щось, і швидко натискаючи на нього, бруд відходить.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.