Yo uso un mouse de 10 botones (Logitech M705). Bajo X11, pude configurar uno de los botones adicionales para que se comportara como un segundo clic central modificando los archivos etc/X11/xorg.conf.d
.
Bajo Wayland, esto ya no funciona. Mi investigación muestra que necesito hacer algo libinput
. Pensé que este sería un problema común, pero no puedo encontrar una respuesta en ningún lado.
¿Alguien puede explicar cómo reasignar los botones del mouse o explicar por qué no se puede hacer?
Respuestas:
La reasignación de botones si está ejecutando Wayland podría hacerse así:
Ejecute
xev | grep button
para registrar eventos de clic del mouse y obtenga el número del evento haciendo clic en la ventana. En mi caso, el botón central es:y quiero mapearlo en:
Luego corre
xinput --list
y encuentra tu dispositivo puntero, el mío es:xinput get-button-map 9
devoluciones:xinput set-button-map:
NOTA: reemplace el número
9
por el número devuelto porid=
Y si se define el comportamiento de esa clave, se asigna su evento. Si no es así, ese es un problema un poco diferente. Bajo Wayland TBH, no he encontrado una manera de ejecutar un comando en un evento (que es bastante fácil con Xorg
xbindkeys
) y, por lo tanto, personalizar completamente el comportamiento del evento de tecla y mouse. Creo que Wayland está tratando de ser más seguro y deshabilita este comportamiento .En cualquier caso, todavía tiene la oportunidad de cambiar a Xorg con bastante facilidad y disfrutar de la funcionalidad.
fuente
xinput set-button-map
para cada nueva sesión de Wayland ...Option "ButtonMapping" "1 2 3 ..."
Hice un pequeño script de shell + archivo de unidad systemd que llamo wayland-mouse-mapper .
extracto de mathportillo / wayland-mouse-mapperfuente
Intente modificar las reglas de hwdb udev. Esto registra los botones del mouse como una tecla del teclado como Launch8 / F16 y desactiva su funcionalidad en todos los programas, wayland u otros.
luego como root
systemd-hwdb update; udevadm trigger
y desconecte el mouse, luego vuelva a enchufarlo.Comprobación de cordura adicional:
sudo udevadm info /dev/input/by-path/*-usb-*-mouse | grep -A3 -P3 KEYBOARD_KEY
o consulte como tal,systemd-hwdb query "evdev:input:v046dp406a*
consulte la fuente para obtener detalles sobre cómo extraer la identificación.Fuente: https://yulistic.gitlab.io/2017/12/linux-keymapping-with-udev-hwdb/
fuente