Я левша, поэтому моя основная кнопка мыши установлена на правую кнопку. Это отлично работает с кнопками моей сенсорной панели, и раньше оно отлично работало и с моей внешней Bluetooth-мышью. Но теперь внезапно, каждый раз, когда я подключаю внешнюю мышь, основная кнопка мыши остается левой, а основная кнопка тачпада остается правой. Я могу решить эту проблему, перейдя в «Настройки»> «Мышь и сенсорная панель»> «Основная кнопка» и установив для нее значение «Влево», а затем «Вправо». Конечно, я бы предпочел не делать это каждый раз при повторном подключении мыши. Есть предложения?
Я использую KVM-переключатель, поэтому после обновления каждый раз при переключении возникает одна и та же проблема.
На данный момент у меня есть этот быстрый и грязный сценарий. Запустите его в терминале от имени вошедшего в систему пользователя;
xinput list | grep Mouse | sed -nre 's/^.*\sid=([0-9]+)\s.*$/\1/p' | xargs -r -I '{}' echo xinput set-button-map {} 3 2 1
Надеюсь, что получится что-то получше, но пока должно быть полезно.
Для полноты картины стоит отметить, что вы также можете использовать инструмент пользовательского интерфейса для настройки мыши и изменить основную кнопку на правую, а затем обратно на левую.
ОБНОВИТЬ/РЕДАКТИРОВАТЬ НИЖЕ
Теперь у меня есть более удобное решение, которое автоматизировано для каждого переключателя kvm, но это все еще хакерское/грязное решение, и я запускаю скрипт после входа в систему...
Настройте следующее для вашего идентификатора поставщика и идентификатора продукта на основе вывода lsusb
. Где шестнадцатеричное число с двоеточием посередине — это {idvendor}:{idproduct} для вашей мыши. Кроме того, как добавляет flipjacob, настройте строку «Mouse» в операторе grep в соответствии с тем, что вы получаете от xinput
.
Создайте файл (от имени root) /etc/udev/rules.d/80-force-left-handed-mouse-on-plugin-event.rules
со следующим содержимым
ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0047", ACTION=="bind", RUN+="/root/notify-mouse-plugged.sh"
Создайте сценарий, который он будет запускать (от имени root) /root/notify-mouse-plugged.sh
.
#!/bin/bash
umask 0000
echo $ACTION >> /tmp/mouse-flag
date >> /tmp/mouse-flag
И, наконец, создайте сценарий для получения «уведомления» в контексте вошедшего в систему пользователя. Я запускаю это после входа в терминал и оставляю его там.
Сценарий прослушивателя $HOME/listen-for-mouse-plugged.sh
.
#!/bin/bash
echo "" > /tmp/mouse-flag
tail -qfn 0 /tmp/mouse-flag 2>/dev/null | while read s
do
#inotifywait -e create /tmp/mouse-flag
echo reset mouse $s
xinput list | grep Mouse | sed -nre 's/^.*\sid=([0-9]+)\s.*$/\1/p' | xargs -I '{}' xinput set-button-map {} 3 2 1
#sleep 5
done
Он запускает цикл слушателя 3 раза для меня, но это не имеет большого значения для чего-то, что я надеюсь скоро выбросить.
У меня была такая же проблема, и после долгих поисков это сработало для меня: Откройте «Настройки запускаемых приложений» и добавьте следующую команду
xmodmap -e "pointer = 3 2 1"
. Это сработало сразу и сохраняется после перезапуска, а также сохраняется, когда мышь Bluetooth снова выходит из бездействия.
Запуск 20.10 - надеюсь, что эта ошибка будет исправлена в ближайшее время.