Як я можу вимкнути функціональність "середньої кнопки миші" у всіх програмах?


43

Мені не подобається вставляти середню кнопку кнопок миші, тому що в Eclipse я часто стикаюсь з незбірливим кодом. Як я можу відключити це (у всіх програмах)? Я запускаю Fedora.


4
Клацання середнім клавішею, щоб вставити вибір, є принциповою частиною способу роботи X11; див. http://www.jwz.org/doc/x-cut-and-paste.html .
ефеміент

1
@Gilles: у всіх програмах. :)
Дерех

4
Я не бачив жодного тривіального способу зробити це, не забиваючи середню кнопку миші цілком, не зламаючи X або вкручуючи звичайний буфер обміну, тому моє запропоноване "рішення" полягає лише в тому, щоб навчитися правильно використовувати середню кнопку миші. Неймовірно зручно мати можливість виділити текстову URL-адресу в будь-якому місці та перейти до неї середнім клацанням у вікні мого (FF) браузера.
jw013

4
@ephemient "Середній клік, щоб вставити виділення, є принциповою частиною способу роботи X11" ... назад, коли у нас були оптичні миші Sun, для отримання сигналу потрібно близько 1 фунта тиску на середню кнопку. Сьогодні середня кнопка спрацьовує на спусковому гачку і, крім того, використовується як колесо, цей "основоположний" повинен пройти (оскільки досить багато "основоположних" речей у X btw.)
Девід Тонхофер

3
Мені здається, що можливість відключити все, що ви хочете, є ще більш фундаментальним аспектом Linux.
Уейн Блос

Відповіді:


24

Це рішення працюватиме в усьому світі та збереже функціональність середньої миші.

Встановити xbindkeys xsel xdotool

Помістіть це ~/.xbindkeysrc

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

Перезавантажити xbindkeys -p

Запустити xbindkeysпри запуску, pkill xbindkeysщоб зупинитися.


7
Дякую!!! Я не можу повірити, що єдине робоче рішення засідало 0 голосів рівно 2 роки.
Retr0id

4
Нарешті, рішення, яке працювало для мене на Ubuntu Mate 17.10. Дякую!
Дмитро Френк

5
@spiil Я спробував це рішення, і воно досягає бажаного ефекту. Я клацнув середнім клавішею в текстовому полі, і нічого не відбувається, але середнім клацанням посилання та середнім клацанням, щоб закрити роботу вкладки в Chromium, Firefox та Waterfox (три перевірені нами браузери).
користувач7214865

4
Прокрутка середньої кнопки натискання і утримування більше не працює з цим рішенням: /
Marc.2377

2
Ти легенда. Я використовував середню кнопку в моєму трекболі для прокрутки, але функціональність вставки зробила моє життя жалюгідним. Тепер знову в повному яскравому кольорі, дякую!
redsPL

16

У Fedora 24 ви можете встановити gnome-tweak-toolза допомогою наступної команди:

$ sudo dnf install gnome-tweak-tool

Відкрийте gnome-tweak-toolта перейдіть на вкладку «Клавіатура та миша» та відключіть «Встановити середній клацання миші».


4
Це також доступне в Ubuntu 16.04: sudo apt-get install gnome-tweak-tool
Tyranin

1
Це стосується лише кількох програм, таких як gedit, gnome-terminal та декілька інших. Дивіться також коментар на сайті askubuntu.com/questions/4507/… .
Квоте

11

Налаштування середньої кнопки є стандартним для інтерфейсу користувальницького інтерфейсу, як, наприклад, вибір лівої кнопки або активація, а права кнопка робить щось інше (наприклад, розширення, перемикання, запуску меню,…). Ви знайдете його прив’язаним до вставки в більшості програм Unix.

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

Ви можете перепризначити кнопку 2 миші на інше число. Програми ідентифікують ліву, середню та праву кнопки миші як кнопки 1, 2 та 3 відповідно. Покладіть цей код у сценарій, який виконується при запуску сеансу X (як це зробити, залежить від середовища на робочому столі).

echo 'pointer = 1 6 3 4 5' | xmodmap -

1
Не працює. pastebin.com/0DYYMDLS
balki

@balki Weird. Це, безумовно, працює для мене. Тож, щоб дізнатися, чому це не працює для вас, задайте нове запитання. Обов’язково вкажіть, у якій версії X.org (або іншого X-сервера) у вас є, який дистрибутив ви використовуєте, і які пристрої введення підключені.
Жил "ТАК - перестань бути злим"

2
Маю на облік, що ОП не має значення, чи є це стандартним (я знаю, що ні). Не має значення. Дії кнопки миші повинні бути легше налаштовуватися.
Марк.2377

7

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

Спочатку потрібно знати ідентифікатор миші, як це:

$ xinput list | grep 'id='

який друкує щось подібне

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜ PixArt Dell MS116 USB Optical Mouse       id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
  Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
  Power Button                              id=6    [slave  keyboard (3)]
  Video Bus                                 id=7    [slave  keyboard (3)]
  Power Button                              id=8    [slave  keyboard (3)]
  Sleep Button                              id=9    [slave  keyboard (3)]
  Dell KB216 Wired Keyboard                 id=10   [slave  keyboard (3)]
  Dell KB216 Wired Keyboard                 id=11   [slave  keyboard (3)]
  Eee PC WMI hotkeys                        id=13   [slave  keyboard (3)]

Моя миша Dell Usb надрукувала тут, для якого id = 12

тож я можу переглянути відображення кнопки миші так:

$ xinput get-button-map 12

який друкує

1 2 3 4 5 6 7 8 9 10 11 12

тут лише перші три номери мають для мене значення. Вони представляють ліву, середню та праву кнопки миші.

Я можу вимкнути середню кнопку миші, встановивши її на 0:

$ xinput set-button-map 12 1 0 3

Або я можу перетворити середню кнопку миші в ліву кнопку миші, встановивши її на 1:

$ xinput set-button-map 12 1 1 3

вип. посилання https://wiki.ubuntu.com/X/Config/Input

це працює для мене (kubuntu 18.04 LTS)


Відмінно працює для тачпада в Slackware 14.2 (KDE).
Firelord

Це краще, ніж будь-яке з перерахованих вище, які починаються із "завантажити XX". Єдине питання у мене було те, що xinput set-button-map 12 1 0 3ви встановили всі кнопки (1 - 12 для цього іспиту xinput set-button-map 12 1 0 3 4 5 6 7 8 9 10 11 12)
сліпий

3

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

Спочатку встановіть sxhkd та xsel .

Потім налаштуйте ./.config/.sxhkd/sxhkdrc так

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

І це в основному все.

Тепер запустіть sxhkd (або налаштуйте його для запуску при запуску). Тепер середня миша більше нічого не вставить, але в іншому випадку буде функціонувати як звичайна.


Це все ще дозволяє використовувати середню мишу для прокрутки. Гарне рішення! Для мене файл був у~/.config/sxhkd/sxhkdrc
Атнас

1

Це загальна конвенція, якої дотримуються багато програм. Немає глобального способу її вимкнути, ви повинні це робити за програмою за програмною ознакою.

EDIT: (окрім, як каже Гілль, відключення кнопки миші 2. Але деякі програми мають інші можливості використання кнопки миші 2, тому я б не рекомендував цього.)


1

EDIT: Я щойно знайшов проблему з опублікованим вами рішенням: у деяких програмах ( gitkпринаймні, не впевнений, наскільки це поширено) це не дозволить виділити текст. Так що спробуйте, але якщо у вас є проблеми з вибором тексту в програмі, яку ви регулярно використовуєте, тоді рішення - припинити її використання.

Встановіть xselта запустіть такий скрипт оболонки:

#!/bin/sh
while true; do
    xsel -fin </dev/null
done

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

Як це працює, він запускає xselта копіює ( -i) вміст /dev/null, не відкидаючи на задній план ( -n), і фактично утримує цю порожню рядок у буфері, а не просто очищає її та не закриває ( -f). Кожен раз, коли він виходить, він xselзнову буде викликати ті самі параметри. Оскільки xselбуде продовжувати працювати до тих пір, поки інша програма "не звільнить її від обов'язку", скопіювавши щось інше, вона не буде постійно створювати нові процеси, замість того, щоб тримати єдиний процес точно, поки він знову не буде необхідний. (Якщо у вас є кілька примірників запущеного сценарію, але це робити не потрібно.)

Також ні, це не завадить регулярно копіювати / вставляти, оскільки середня кнопка клацання використовує окремий буфер обміну.


Дякую! Я використовую KDE, і це рішення є ТОЛЬКО тим, що працює для мене.
Aloso

@Aloso Вітаємо вас, просто пам’ятайте про застереження у верхній частині. Якщо ви коли-небудь не можете вибрати текст у програмі, то це, швидше за все, винуватець.
flarn2006

Так, я помітив цю проблему в діалоговому вікні "Збереження файлу" Firefox. Тепер я лише вмикаю цей сценарій, коли програмую.
Aloso

@Aloso Окей тоді; рада, що вам все одно
корисно

0

Це мій сценарій. Можливо, вам знадобиться налаштування

#!/bin/bash 
clear
echo
echo
echo
echo -----Now fixing your scroll button --- -hold onto pants
echo
xinput --list|grep "Virtual core XTEST pointer"
echo ---------------------------------------------------------------------------------
echo


id=$(
xinput --list|grep "Virtual core XTEST pointer" |awk '{
        for(i=1; i<=NF; i++) {
                tmp=match($i, /id=[0-9]+/)
                if(tmp) {
                        print $i
                }
        }
}' $1 |  tr -d '[:alpha:]='
)

echo fixing $id:

xinput set-button-map $id  1 10 2 4 5 6 7 8 9 3

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