Я использую 10-кнопочную мышь (Logitech M705). Под X11 я смог настроить одну из дополнительных кнопок для работы в качестве второго среднего щелчка, изменив файлы в etc/X11/xorg.conf.d
.
Под Уэйлендом это больше не работает. Мои исследования показывают, что мне нужно что-то делать libinput
. Я думал, что это будет распространенной проблемой, но нигде не могу найти ответ.
Может кто-нибудь объяснить, как переназначить кнопки мыши или объяснить, почему это нельзя сделать?
Ответы:
Переназначение кнопок, если вы используете Wayland, может быть сделано так:
Запустите
xev | grep button
для регистрации событий щелчка мыши и получить номер события, например, нажав в окне. В моем случае средняя кнопка - это:и я хочу отобразить это на:
Затем запустите
xinput --list
и найдите ваше указательное устройство, мое:xinput get-button-map 9
возвращает:xinput set-button-map:
ПРИМЕЧАНИЕ: замените номер
9
на номер, возвращенныйid=
И если поведение этого ключа определено, ваше событие отображается. Если это не так, это немного другая проблема. В Wayland TBH я не нашел способа выполнить команду для события (что довольно просто для Xorg
xbindkeys
) и, следовательно, полностью настроить поведение события «ключ» и «мышь». Я считаю, что Wayland пытается быть более безопасным и отключает это поведение. ,В любом случае, у вас все еще есть возможность довольно легко переключиться на Xorg и наслаждаться функциональностью.
источник
xinput set-button-map
на каждый новый сеанс вOption "ButtonMapping" "1 2 3 ..."
Я сделал небольшой скрипт shell + системный файл systemd, который я называю wayland-mouse-mapper .
выдержка mathportillo / wayland-mouse-mapperисточник
Попробуйте изменить правила hwdb udev. Это регистрирует кнопки мыши как клавиши клавиатуры, такие как Launch8 / F16, и отключает их функциональность во всех программах, Wayland или иным образом.
затем от имени пользователя root
systemd-hwdb update; udevadm trigger
и отключите мышь, затем подключите его снова.Дополнительная проверка работоспособности:
sudo udevadm info /dev/input/by-path/*-usb-*-mouse | grep -A3 -P3 KEYBOARD_KEY
или запросите его как таковой,systemd-hwdb query "evdev:input:v046dp406a*
см. Источник для получения подробной информации о получении идентификатора.Источник: https://yulistic.gitlab.io/2017/12/linux-keymapping-with-udev-hwdb/
источник