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

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

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

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

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

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

29 ответов

Решение

Для решения проблемы, пожалуйста, просмотрите это руководство, которое я написал

Или, более прямо, вот патч для отключения функции "вставка средней кнопки мыши" в GTK.

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

  1. Установить его

    sudo apt install gnome-tweak-tool
    
  2. Запустите его, выполнив поиск "инструмент настройки" в установленных приложениях или просто введите gnome-tweak-tool в терминале.

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

Вот и все.

Или используя только CLI

gsettings set org.gnome.desktop.interface gtk-enable-primary-paste false

Проверено 16.04.

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

В о:config, set

middlemouse.contentLoadURL false
middlemouse.paste false

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

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

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

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

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

pointer = 1 25 3 4 5 6 7 8 9

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

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

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

Каким-то образом я оказался без каких-либо файлов 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

В вашем случае у вас может быть другое количество назначенных кнопок, и у вас уже есть определенная карта кнопок. Кроме того, у вашей мыши тоже другое имя. Во-первых, получите имя мыши. Затем используйте операцию get-button-map, чтобы найти вашу базовую карту кнопок. наконец, используйте опцию set-button-map, изменив кнопку 2, чтобы выполнить действие 1.

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

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

Единственный ответ, который работал для меня, был дан на /questions/213197/kak-mne-ustanovit-roundcube/213201#213201 Radivarig (все кредиты идут к нему). Обратите внимание, что мне нужно было сделать одно изменение, чтобы оно работало:

Установите xbindkeys:

sudo apt-get install xbindkeys xsel xdotool

Создайте файл конфигурации для xbindkeys ~/.xbindkeysrc с текстом:

"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
b:2

Загрузите файл конфигурации, используя

xbindkeys -p

Добавьте эту строку в ~./ Bashrc, чтобы xbindkeys всегда загружался при запуске.

Это то, что работает для меня, но Radivarig предлагает вместо этого использовать линию

"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
    b:2 + Release

Это последнее не работает для меня, но если версия не работает, я предлагаю попробовать другой.

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


Обратите внимание, что для существующих ответов с голосованием либо они не отвечают на вопрос, а вместо этого рассказывают, как полностью отключить среднюю кнопку мыши, либо они предлагают решение, которое работает только в нескольких программах (tweak-решение только в терминале gedit и gnome и немногие другие) или они просто говорят, что это невозможно.


ответ spawn имеет схожий дух и может также сработать, я не видел его, пока не нашел это решение.

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

Сначала установите sxhkd и xsel.

Затем настройте ./.config/.sxhkd/sxhkdrc примерно так

~button2
    echo -n | xsel -n -i
~control + c
    echo -n | xsel -n -i
~control + x
    echo -n | xsel -n -i

И это в основном все.

Теперь запустите sxhkd (или настройте его для запуска при запуске). Теперь средняя мышь больше не будет вставлять что-либо, но в остальном будет функционировать как обычно. (Пока вы используете только ctrl + c и ctrl + x для копирования, то есть, если вы копируете объекты мышью, его можно вставить один раз, прежде чем он вернется в нормальное состояние.)

Для приложений Gnome вы можете использовать gnome-tweaks (новое имя gnome-tweak-tool пакет) на вкладке "Клавиатура и мышь" есть опция "Вставка среднего щелчка" или редактирование напрямую с помощью опции Gnome org.gnome.desktop.interface / gtk-enable-primary-paste.

Для приложений KDE кажется, что есть эквивалентное решение.

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

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

используя 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

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

Для тех, кто испытывает это при использовании IDE JetBrains, такой как PyCharm/IntelliJ/Android Studio/и т. д., обратите внимание, что эти IDE на самом деле имеют СОБСТВЕННУЮ настройку «вставить при среднем щелчке», которую вы можете отключить в настройках.

Вы можете отключить среднюю кнопку ОБА в среде IDE И использовать все, что вы найдете здесь, чтобы заставить ее работать.

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

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

Ссылка: http://ubuntuforums.org/showpost.php?p=11811126&postcount=25

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

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

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

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

$ xinput set-button-map 4 1 0 3

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

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

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

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

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

Счастливого Linux!

Sincerly,

SW: Ubuntu 14.04, с отступлением Gnome. HW: У меня есть ноутбук, и поэтому средняя кнопка - это мышь на ноутбуке. Решение: перейдите в Ubuntu SW center и загрузите Unity Tweak Tool. Запустите Tweak Tool. Под настройками мыши он имеет переключатель для включения / выключения вставки среднего щелчка. Хорошего дня.

В Kubuntu для решения проблемы может потребоваться дополнительный шаг.

Кажется, что Klipper, менеджер буфера обмена, предоставляемый KDE, ломает сценарии, которые исправляют поведение, очищая выбор буфера обмена.

Следующее глобально отключит вставку при среднем щелчке, сохранив при этом все функции средней кнопки мыши и Ctrl+C/V.

Выполните шаги, описанные в этом ответе , то есть:

  1. Установить xbindkeys xsel xdotool

  2. Поместите это в ~/.xbindkeysrc

             "echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"  
    b:2 + Release
    
  3. Перезагрузить xbindkeys -p

На шаге 2. вам может понадобиться удалить + Releaseчасть, как описано в этом посте , в зависимости от того, что работает на вашей машине.

Настраивать xbindkeysдля запуска при запуске.

Затем откройте Klipper, например, с помощью значка буфера обмена на панели задач > щелкните правой кнопкой мыши > Настроить буфер обмена. Снимите флажок «Запретить пустой буфер обмена». Перезагрузитесь, и проблема должна быть решена.

Последняя идея появилась благодаря XMousePasteBlock от milaq .

Я попробовал трюк xinput-redirection, изменив центральную "кнопку" мыши (на самом деле колесо), чтобы она действовала так же, как левая кнопка мыши. Он по-прежнему работает как колесо и (по-видимому) прекратил вставлять вещи в случайные места в середине моего исходного кода, когда я прокручиваю мимо.

В моем случае команда была

xinput set-button-map "PixArt USB Optical Mouse" 1 1 3 4 5 6 7 8 9 10 11 12 13 14 15 16

но YMMV по модели мыши.

В KDE Plasma 5.20 мне пришлось отключить как этот ответ , так и клиппер (Настройки системного трея -> Отключить клиппер)

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

Я могу дать вам частичный ответ, если вы используете lenovo X... с сенсорной панелью / тачпадом. Существует "известная" ошибка с кнопками мыши synaptics. Если вы попробуете USB-мышь и у вас не возникнет проблем, но с сенсорной панелью / сенсорной мышью (встроенной в клавиатуру) у вас есть случайные ответы, которые могут удалить текстовые фрагменты при вводе текста, возможно, это ошибка, о которой я говорю,

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1506817

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

Единственное известное мне рабочее решение - отключить копирование при выделении текста:

Клонируем https://github.com/CyberShadow/hax11, читаем документы (про NoPrimarySelection)

Соберите hax11, добавьте предварительную загрузку hax11.soс использованием export LD_PRELOAD=<PATH_TO_HAX11.so>(см. документы репозитория), добавить

      Enable=1
NoPrimarySelection=1

к ~/.config/hax11/profiles/default

Посмотреть оригинальный ответ

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

Установите gpointing-device-settings:

sudo aptitude install gpointing-device-settings

http://live.gnome.org/GPointingDeviceSettings

С другой стороны, если вы не хотите устанавливать gpointing-device-settings и вас не беспокоят параметры командной строки, см. https://wiki.ubuntu.com/X/Config/Input На этой вики-странице есть несколько командных строк. / Параметры конфигурации, выберите тот, который вы предпочитаете.

В KDE5 в Панели управления есть опция, позволяющая включать / отключать центральный щелчок, который отключен.

sudo apt install xserver-xorg-input-synaptics

После установки этого пакета и перезапуска становится доступной возможность отключить центральный щелчок.

Это хороший вопрос, на который у меня нет ответа (пока). Быстрый и грязный обходной путь состоит в том, чтобы переназначить его НЕ на 0, а на 1. Таким образом, он поворачивает средний щелчок левой кнопкой мыши и не влияет на ваш скроллер... Это лучшее, что я могу придумать,

Примечание: эта информация пришла с форумов Ubuntu, а не из моего собственного noggin!:)

Используя то, что я узнал в постах выше, этот bash one-liner отлично работает для меня...

mouse_id=$(xinput list | grep 'Mouse' | awk '{print $9}' | sed 's/[^0-9]//g') && xinput set-button-map "$mouse_id" 1 0 3

Вопреки названию, проблема 10-летней давности кажется действительно

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

Кроме того, вы не можете безопасно писать программы.

Менее разрушительно, чем «отключить вставку средней кнопки мыши», я вижу 3 возможных решения, пока эффективным является только первое:

1-Кнопки обмена 2 и 3

      xinput set-button-map <id> 1 3 2

куда <id>должен быть заменен идентификатором мыши, как объяснено выше Уэсом Миллером.

Чтобы сделать изменение постоянным, напишите в .xprofile. ( .bashrcне будет работать, если вы не используете bash.)

Таким образом,

  • если вы случайно нажмете кнопку 2 во время прокрутки, это откроет только альтернативное меню действий, которое само по себе не делает ничего вредного,

  • последнее, но не менее важное: вы все еще можете щелкнуть, чтобы вставить X-буфер, с помощью кнопки 3 (справа).

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

2-Найдите мышь с четвертой кнопкой и переназначьте кнопку 2 на кнопку 4.

Однако я не могу точно идентифицировать такую ​​мышь на рынке. Если вы точно знаете одну, меня интересует, но не дорогая проводная игровая мышь.

Я попробовал другую трехкнопочную мышь: щелчок колеса менее чувствителен, но проблема сохраняется.

3-Использовать эмуляцию средней кнопки

      % xinput list-props <id>

Это должно вернуть что-то (среди прочего), например

      libinput Middle Emulation Enabled (353):    0

Активируйте эмуляцию средней кнопки:

      xinput set-prop 15 353 1

Теперь вам также необходимо деактивировать кнопку 2. Переназначение на 0 или 25 не будет работать, поскольку оно также отключит эмуляцию средней кнопки. Это убивает решение 3.

Проверено на Ubuntu 20.04.

Чтобы решить эту проблему, я перешел к опции «Мышь», выполнив поиск в строке меню, затем увидел Enable middlemouse pateи отключил ее.

Я использую Ubuntu Mate 22.04.

Это больше, чем просто функция gnome, я думаю, что она работает почти везде, она работает и в консоли, и я думаю, что она работала даже в моем "Linux from Scratch".

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

КСТАТИ: Это действительно полезно, и это не обычная вставка, как Ctrl + V, все, что отмечено курсором, помещается во второе хранилище и с помощью среднего щелчка может вставить то, что вы отметили последним.

Ты проверил gpm? Более подробная информация на http://manpages.ubuntu.com/manpages/lucid/man8/gpm.8.html. Доступно через sudo aptitude install gpm на ясном. Однако я не вижу программы disable-paste в пакете ubuntu, возможно, стоит попробовать опцию -A.

Другие вопросы по тегам