Eu uso um mouse de 10 botões (Logitech M705). No X11, consegui configurar um dos botões extras para se comportar como um segundo clique no meio, modificando os arquivos etc/X11/xorg.conf.d
.
Sob Wayland, isso não funciona mais. Minha pesquisa mostra que eu preciso fazer algo libinput
. Eu pensei que este seria um problema comum, mas não consigo encontrar uma resposta em qualquer lugar.
Alguém pode explicar como remapear os botões do mouse ou explicar por que isso não pode ser feito?
Respostas:
Remapear os botões se você estiver executando o Wayland pode ser feito assim:
Execute
xev | grep button
para registrar os eventos de clique do mouse e obter o número do evento clicando fe na janela. No meu caso, o botão do meio é:e eu quero mapeá-lo:
Em seguida, execute
xinput --list
e encontre o seu dispositivo apontador, o meu é:xinput get-button-map 9
retorna:xinput set-button-map:
NOTA: substitua o número
9
pelo número retornado porid=
E se o comportamento dessa chave for definido, seu evento será mapeado. Caso contrário, esse é um problema um pouco diferente. No Wayland TBH, não encontrei uma maneira de executar um comando em um evento (o que é bastante fácil com o Xorg
xbindkeys
) e, portanto, personalizar totalmente o comportamento do evento de chave e mouse. Acredito que o Wayland está tentando ser mais seguro e desabilita esse comportamento .De qualquer forma, você ainda tem a oportunidade de mudar para o Xorg facilmente e aproveitar a funcionalidade.
fonte
xinput set-button-map
para cada nova sessão de Wayland ...Option "ButtonMapping" "1 2 3 ..."
Criei um pequeno script de shell + arquivo de unidade systemd que chamo de wayland-mouse-mapper .
trecho mathportillo / wayland-mouse-mapperfonte
Tente modificar as regras do hwdb udev. Isso registra os botões do mouse como uma tecla do teclado, como o Launch8 / F16, e desativa sua funcionalidade em todos os programas, wayland ou outros.
como root
systemd-hwdb update; udevadm trigger
e desconecte o mouse e conecte-o novamente.Verificação adicional de integridade:
sudo udevadm info /dev/input/by-path/*-usb-*-mouse | grep -A3 -P3 KEYBOARD_KEY
ou consulte-a como tal,systemd-hwdb query "evdev:input:v046dp406a*
consulte a fonte para obter detalhes sobre como extrair o ID.Fonte: https://yulistic.gitlab.io/2017/12/linux-keymapping-with-udev-hwdb/
fonte