Я использую Ubuntu 15.04 на Dell XPS 13 с 2013 года. С 13.04 я иногда получаю случайную эмуляцию среднего клика / среднего клика. Я могу сказать, что это происходит потому, что текст в моем буфере обмена вставляется сам (поведение по умолчанию в Ubuntu) в случайное время.
Может кто-нибудь сказать мне, почему это происходит и как я могу это отключить?
Выполните следующую команду:
xmodmap -e "pointer = 1 25 3 4 5 6 7 8 9"
Для сохранения этого поведения отредактируйте ~/.Xmodmap и добавьте
pointer = 1 25 3 4 5 6 7 8 9
Для Ubuntu 18.04 и более поздних версий (в которых по умолчанию включена эмуляция средней кнопки мыши):
Создайте скрипт с именем disable-middle-button-emulation
со следующим содержимым:
#!/bin/bash
# to through all input devices
xinput list --id-only | while read id
do
# if this device supports middle button emulation, disable it (both evdev and libinput variants)
xinput --list-props "$id" | grep -qF "Evdev Middle Button Emulation" && xinput set-prop "$id" "Evdev Middle Button Emulation" 0
xinput --list-props "$id" | grep -qF "libinput Middle Button Emulation" && xinput set-prop "$id" "libinput Middle Button Emulation" 0
xinput --list-props "$id" | grep -qF "libinput Middle Emulation" && xinput set-prop "$id" "libinput Middle Emulation" 0
done
Затем запустите chmod a+x disable-middle-button-emulation
, чтобы установить бит разрешения выполнения, а затем вы можете запустить его с помощью ./disable-middle-button-emulation
. Если вы поместите файл в свой домашний каталог в подкаталог bin
, вам не нужно добавлять префикс к команде. В качестве альтернативы вы можете поместить все вышеперечисленное в файл ~/.xsessionrc
, который автоматически запускается всякий раз, когда вы запускаете новый сеанс X.
Чтобы проверить поведение системы (до или после вышеуказанного изменения), запустите xev
, наведите указатель мыши на окно xev
и одновременно нажмите левую и правую кнопки. Если вы получаете «кнопку 2» (средняя кнопка мыши) в выводе терминала, эмуляция все еще активна. Вы должны получить отдельные события для «кнопки 1» (левая кнопка мыши) и «кнопки 3» (правая кнопка мыши). Обратите внимание, что если симуляция активна, событие нажатия кнопки мыши 1 или 3 будет задержано на 50 мс, что вызовет дополнительную задержку для всего в системе. Если вы действительно хотите использовать эмуляцию, но уменьшить задержку, вы можете изменить приведенный выше скрипт, чтобы он искал Тайм-аут эмуляции кнопки
и настроил его по своему вкусу. Значение по умолчанию — 50
, что означает 50 мс.