Вопрос Как отключить среднюю кликовную кнопку мыши?


Есть ли способ отключить поведение вставки средней кнопки мыши, которое здесь по умолчанию включено в gnome?

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

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

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

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


99
2017-09-21 15:26


происхождения


с / чувствительная / чувствительная / - Dennis Williamson
Действительно раздражающее поведение по умолчанию. Как вы его отключили? - umpirsky
@umpirsky: Не нашли подходящего способа отключить его. - levesque
Если ваша мышь регистрирует средние клики, пока вы просто хотите прокручивать, я предлагаю вам попробовать другую модель мыши (возможно, с более высоким давлением, чтобы щелкнуть колесо). После нескольких лет использования Linux я никогда не беспокоился о вашей проблеме, на самом деле пачка среднего клика оказалась очень полезной :) - Maxime R.
@umpirsky Я бы не назвал это идиотским; однако я согласен, что это может быть довольно раздражающим (особенно при простой прокрутке в графической программе) - Vreality


ответы:


Для решения проблемы, пожалуйста, ознакомьтесь с этим руководством, я написал: http://www.assembla.com/spaces/slipstream/wiki/Disabling_GTK's_middle_mouse_button_functionality

Или, более прямо, вот патч, чтобы отключить функцию «средней кнопки мыши» в GTK: http://subversion.assembla.com/svn/slipstream/patches/gtk_disable_middle_mouse_button_paste.patch


15
2017-09-17 21:27



У меня не было времени попробовать (частично потому, что у меня больше нет ноутбука), но это похоже на решение моей проблемы :) - levesque
Я использую Ubuntu 12.04 64 бит с gtk 2.0-0_2.24.10, и это не удалось в строке dpkg-buildpackage. Он не строился с незафиксированными локальными изменениями, поэтому мне пришлось запускать dpkg-source -commit. - Sam King
@Sam: Спасибо за головы. По-видимому, --source-option=--auto-commit вариант может быть передан dpkg-buildpackage (что несколько более удобно, так как не нужно редактировать журнал изменений). Я обновил руководство, чтобы отразить это. - Jelle Geerts
Я пробовал это решение, но каждый раз, когда я добирался до sudo apt-get build-dep libgtk2.0-0 я получаю сообщение об ошибке Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0' E: Unable to find a source package for gtk+2.0  Помогите? - FCTW
@FCTW: Я подозреваю, что причиной этой проблемы является то, что GTK3 заменил GTK2 в современных дистрибутивах. Следовательно, вам нужно будет найти имя пакета установленной библиотеки GTK3, выполнив команду типа dpkg -l | grep libgtk, Вероятно, это что-то вроде libgtk-3-0. Я проверил свой патч для работы над ранними версиями GTK3; надеюсь, он все еще работает. - Jelle Geerts


Джаред Робинсон дал простое решение который работает на моей машине:

Выполните следующую команду:

xmodmap -e "pointer = 1 25 3 4 5 6 7 8 9"

Чтобы сохранить это поведение, отредактируйте ~ / .Xmodmap и добавьте

pointer = 1 25 3 4 5 6 7 8 9

32
2017-08-06 00:32



Разве это вообще не отключает среднюю кнопку? Как насчет закрытия вкладок, открытия ссылок на новые вкладки и т. Д.? - levesque
Хотя это теоретически может ответить на вопрос, было бы предпочтительнее чтобы включить здесь основные части ответа и предоставить ссылку для справки. - Kris Harper
@HDave. Как это должно быть отмечено как ответ на вопрос, в котором конкретно говорится, что он видел решения, которые перетаскивают среднюю мышь на другой ключ, но это не удовлетворительно? Это именно то, что делает этот ответ. - Thor84no
Может ли кто-нибудь объяснить, что означает эта серия магических чисел? - Neil Traft
@Neil Traft. Я не слишком разбирался в этой точной конфигурации, но из моего понимания систем входных событий, когда у вас есть устройство ввода, такое как мышь, он отправляет стандартные входные события, когда кнопки нажимаются, эти события говорят вам, что «кнопка изменилась в состояние »,« эта кнопка имеет идентификатор X »и« текущее состояние нажата / отпущена ». gtk изменяет входные события, которые он получает, на кнопки кнопок карты [0,1,2,3,4,5,6,7,8 ] до [1,2,3,4,5,6,7,8,9], помните, что только первые 3 кнопки ids используются на большинстве мышей, чтобы указать идентификатор кнопки для левого, среднего и правого. так что средний теперь id 25 - S E


Я понимаю, что это не совсем тот ответ, который вы хотите, но вы можете отключить его в Firefox (например, если вы не против этой функции в другом месте, но все же хотите, чтобы средний щелчок в Firefox открывал ссылки на новых вкладках)

Пример: config, set

middlemouse.contentLoadURL false
middlemouse.paste false

Не то, что вы просили, но поскольку этот вопрос связан с несколькими местами, я надеюсь, что кто-то найдет этот ответ полезным.


23
2018-01-21 09:11



+1 Это полезно. Я также добавлю, что в LibreOffice вы можете сделать это в Tools/Options/LibreOffice/View/Mouse измените «Средняя кнопка мыши» на предпочтительную настройку. - Tom Brossman


В настоящее время это невозможно, хотя, как вы уже упоминали, есть способы отключить кнопку MOUSE 3 - или переназначить ее - ни один из них не попадет в исходную ситуацию. Основной выбор X11.

Хотя это не решение, мы надеемся, что это объяснение даст понять, ПОЧЕМУ. В Ubuntu работают два буфера обмена. Один, с которым все знакомы, буфер обмена freedesktop.org (захватывает Ctrl+С команда) Второй менеджер буфера обмена, который был в игре, до того, как Ubuntu даже существовал - X11. X Server (X11) управляет тремя другими буфер обмена: Первичный выбор, Вторичный выбор, а также буфер обмена, Когда вы выбираете текст с помощью указателя, он копируется в буфер на XServer, Primary Selection и ожидает вставки с помощью кнопки мыши 3. Остальные два были разработаны для использования другими приложениями, чтобы совместно использовать общий буфер обмена между приложениями. В этом случае менеджер буфера обмена freedesktop.org в Ubuntu уже делает это для нас.

В рамках моих исследований я не могу найти способ отключить менеджер выбора X11. Нет флагов компиляции, приложений или значений конфигурации, которые могут отключить это. Для каждого приложения существуют различные способы (большинство из этих приложений являются командной строкой), но ничего не происходит в глобальном масштабе.

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

Сначала установите xsel (Инструмент для манипуляции с выбором X) sudo apt-get install xsel

Код выглядит следующим образом:

while(true)
do
    echo -n | xsel -n -i
    sleep 0.5
done

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


18
2017-09-23 18:56



Любой шанс для скрипта, который просто очищает буфер вместо отмены всех выборов? - levesque
в то время как (правда)? Похоже, он убьет CPU :) - umpirsky
Я попробовал сопоставление бутов, добавив параметр «ButtonMapping» «1 1 3 4 5» в xorg.conf, но проблема не отвечает. - umpirsky
@umpirsky while(true) не является проблемой, поскольку цикл содержит sleep 0.5 который отказывается на полсекунды процессорного времени в каждой итерации цикла. Из-за этого (и xsel вызов команды, который содержит другую часть цикла), ресурсы процессора, занятые циклом, будут чрезвычайно незначительными даже на самых медленных машинах Ubuntu. - Eliah Kagan
Это, похоже, не очень хорошо работает в Unity, потому что скрипт очищает любой существующий выбор в терминале, что означает, что вы не можете копировать тест с терминала любыми способами (к тому времени, когда вы попытаетесь скопировать, текст не выбран). - Fantius


Я использую gnome-tweak-tool для отключения средней пасты кнопок в Ubuntu 16.04.

sudo apt install gnome-tweak-tool

Поиск «tweak tool» в установленных приложениях. Запустить его.

Или просто введите gnome-tweak-tool в терминале.

Перейдите в раздел «Клавиатура и мышь» -> «Среднее нажатие на кнопку" Выключить.

Это оно. Протестировано на Ubuntu 16.04


16
2018-01-15 12:03



Работал как шарм! Я так быстро терял надежду. Спасибо! - theY4Kman
Работал! Благодарю: D - Ahmad Muzakki
он не работает после перезагрузки: '( - Ahmad Muzakki
Использование инструмента Tweaks было бы самым лучшим способом сделать это, если бы это сработало. Я отключил палочку среднего щелчка, и он все еще посередине похож на тот же, что и раньше. То же самое после перезапуска. Кто-нибудь разрешает подобную проблему? - Kvothe
Также интересно, объяснение странного поведения среднего щелчка перезаписи буфера буфера обмена с текущим выбором: askubuntu.com/a/225879/653860  (Но, к сожалению, отключив среднюю кнопку мыши в целом, как было предложено в этом ответе, также полностью отключает мое колесо мыши. Кажется, что нет простого способа избавиться от этого глупого поведения, не уничтожая другие важные функции ввода. .: /) - trollkotze


Так или иначе, я оказался без каких-либо файлов xmodmap в моей установке Ubuntu, поэтому мне пришлось найти другой подход к этой проблеме.

Взгляните на XInput команда.

xinput list | grep -i mouse

в котором перечислены сведения о вашей мыши. Он показывает, что моя мышь - это «оптическая мышь Dell Premium USB», а также что у меня есть эмуляция мыши для Macintosh. Вооружившись этой информацией, я могу

xinput get-button-map "Dell Premium USB Optical Mouse"

который дает мне список, который выглядит

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Вот полезное, необходимое знание. У моей мыши есть теоретически 18 кнопок. Действие каждой кнопки по умолчанию имеет то же имя, что и номер кнопки. Другими словами, кнопка 1 выполняет действие 1, кнопка 4 выполняет действие 4 и т. Д. Действие 0 означает «выключено».

должность в списке отображается функция, назначенная этой кнопке. Итак, если моя карта кнопок читается

1 3 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

это означает, что кнопка 1 (позиция 1) выполняет действие 1 (нормальная левая кнопка), кнопка 2 (позиция 2) выполняет действие 3 (средняя кнопка), а кнопка 3 (позиция 3) выполняет действие 2 (правая кнопка).

Чтобы сделать левую мышь, вам понадобится карта кнопок, которая начнется

3 2 1 4 5 .....

Или, в вашем случае, похоже, что вы хотите, чтобы средняя кнопка делала то же самое, что и кнопка 1 (левая кнопка), чтобы ваша карта начиналась

1 1 3 ....

Я бы сбросил свои сопоставления с кнопками мыши таким образом:

xinput set-button-map "Dell Premium USB Optical Mouse" 1 1 3 5 6 6 7 8 9 10 11 12 13 14 15 16 17 18

В вашем случае у вас может быть другое количество отображаемых кнопок и определенная специальная карта кнопок. Иначе у вашей мыши тоже другое имя. Сначала введите «имя» вашей мыши. Затем используйте получить кнопки-карта для поиска вашей базовой карты кнопок. наконец, используйте набор кнопки-карта вариант, изменение кнопки 2 для выполнения действия 1.

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

Надеюсь это поможет.


14
2018-01-12 12:58



Спасибо за информацию. Это объясняет немного больше о кнопках мыши и действиях, применяемых к ним. Однако это не то решение, которое я ищу. Если вы щелкнули левой кнопкой мыши вкладку в Chrome (чтобы использовать мой пример), она выбирает ее (если она еще не выбрана). Нажав на нее средней кнопкой, закройте ее (т. Е. Без щелчка по X). Я также пропустил средний щелчок по ссылке, чтобы открыть ее на новой вкладке для последующего чтения. Я понимаю, что могу преодолеть эти альтернативы, но я привык к этому способу работы ... - neildeadman
Просто мысль; любая из других кнопок на вашей мыши, я говорю, что у меня есть 18 кнопок, хотя мне еще физически удается найти более 8 из них) может быть той функцией, которую вы хотите. Попробуйте сопоставить другие кнопки с третьей кнопкой и посмотреть, найдете ли вы что-то полезное. - Wes Miller
Если вы переназначаете в качестве мыши с двумя кнопками, это не должно меняться, потому что рулоны колеса нажимают кнопки 5 и 6 (или 7 и 8 или что-то в этом роде). - Wes Miller
Я могу подтвердить, что это работает как на встроенной трек-площадке ThinkPad, так и на клавиатуре Lenovo с одинаковой компоновкой. get-button-map на клавиатуре Lenovo возвращается с 22 кнопками для меня, но то же самое set-button-map <<name-or-id>> 1 0 3 подход работает для меня - Milimetric
это это ответ (хотя я думаю, что ваше описание выключено) - get-button-map связывает позицию в списке с физической кнопкой, которая противоположна xmodmap, которая связывает позицию в списке с функцией. Используя карту set-button, мы можем сопоставить две физические кнопки в одной логической позиции. Работает на asus zenbook pro для меня. - zzzeek


Я предлагаю использовать один из них, который работает в основном для меня:

используя xbindkeys: всякий раз, когда нажата средняя кнопка, очистите основной буфер обмена. По крайней мере, в моей системе это очищается, прежде чем произойдет склеивание. Подробности: создать xbindkeys-config:

xbindkeys --defaults > $HOME/.xbindkeysrc

Вставьте следующую новую горячую клавишу:

"xclip -i /dev/null"    
    b:2``

Перезагрузите xbindkeys (например, killall xbindkeys, xbindkeys). Готово.

используя xdotool: Очистите буфер обмена при изменении фокуса окна (он должен работать с большинством оконных менеджеров). Детали: Выполните следующую команду:

xdotool search --onlyvisible . behave %@ focus exec xclip -i /dev/null

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


4
2018-02-22 11:10





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

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

Справка: http://ubuntuforums.org/showpost.php?p=11811126&postcount=25

Полное руководство EasyStroke: http://sourceforge.net/apps/trac/easystroke/wiki/Documentation


3
2018-02-03 12:13



Спасибо за будущее за этот совет. Сначала я просто использовал xinput, чтобы полностью отключить его, и не нужно запускать какую-то дополнительную программу, но EasyStroke позволял устанавливать группы, где я мог бы отключить среднюю кнопку для определенных приложений (главным образом, мой редактор) и добавлять жесты в некоторые другие приложения и использовать среднюю кнопку. До сих пор хорошо работает (14.04 Gnome fallback). - Marty Fried
Добавлено в мой комментарий: после использования EasyStroke некоторое время я обнаружил, что часто не удается заблокировать средний клик. Поскольку я не использовал жесты, я отказываюсь от этой программы для xinput. - Marty Fried


Это поведение средней кнопки мыши является особенностью X-сервера (и gpm на текстовой консоли), и насколько я знаю, по крайней мере, X.org не может быть настроен на его отключение - все, что вы можете сделать, это изменить отображение физических кнопок мыши, как уже говорили другие.

Скорее всего, вы можете настроить свой тачпад, чтобы избежать нежелательных средних кликов, см. Настройки gpointing-device (не установлены по умолчанию) или man-страницу synaptics, если вы предпочитаете использовать свой редактор для настройки.


2
2017-09-23 18:52





ссылка ниже исправила проблему для меня.

https://wiki.ubuntu.com/X/Config/Input#Example:_Disabling_middle-mouse_button_paste_on_a_scrollwheel_mouse

на странице, на которую ссылается ссылка выше, есть раздел о том, как отключить среднюю вставку мыши на scrollwheel, выполнив несколько команд, которые пользователь может получить для отображения кнопок мыши, а также может изменить отображение. как объясняется на странице I, отключена средняя кнопка, выполнив команду:

$ xinput set-button-map 4 1 0 3

2
2018-01-05 14:38



ОП особо упомянул, что он не хотел полностью отключать среднюю кнопку щелчка. - cpburnz


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

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

Теперь, когда я исправил ошибку аппаратного обеспечения с помощью соответствующего аппаратного решения (изменив мышь), я даже начал пристрастие к поведению «вставить при среднем щелчке»!

Счастливый linuxing!

Sincerly,


1
2017-08-16 18:44