Ubuntu 18.04.2 em um Thinkpad T480
Quero executar um script udev quando meu mouse estiver conectado. Fico feliz em assumir que um usuário chamado tim tem um Xsession em execução (eu uso o kde plasma).
O objetivo é configurar a rolagem do botão do meio para um mouse USB da Logitech, incluindo a conexão a quente.
Minha regra está em:
/etc/udev/rules.d/41-usb-mouse-add.rules
ACTION=="add" \
, ATTRS{idProduct}=="c539" \
, ATTRS{idVendor}=="046d" \
, ENV{DISPLAY}=":0" \
, ENV{XAUTHORITY}="/tmp/xauth-1000-_0" \
, RUN+="/home/tim/scripts/tweak_libinput.sh"
A localização de XAUTHORITY é copiada do que vejo em um shell.
Eu tenho uma chamada para o logger no script, e ele está sendo chamado várias vezes (por quê?) Portanto, a regra do udev está funcionando, embora eu esperasse que ela fosse chamada apenas uma vez.
Está tendo algum efeito, porque quebra minhas configurações de rolagem natural ... esse mesmo script ativa a rolagem natural, mas após a invocação do udev, as configurações de rolagem natural são redefinidas. Então é pior do que falhar, na verdade está quebrando minhas configurações :)
Quando o script é executado manualmente, funciona bem. Independentemente de quantas vezes eu o invoco.
Editar
ls -l /tmp/xauth-1000-_0
-rw------- 1 tim tim 53 Jun 11 20:07 /tmp/xauth-1000-_0
essa configuração de permissão será um problema?
Responder1
É possível fazer isso com um arquivo de configuração em/usr/share/X11/xorg.conf.d/41-libinput-local.conf
Estes conteúdos funcionam para um dispositivo específico:
Section "InputClass"
Identifier "Logitech USB Receiver Mouse"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "ScrollButton" "2"
Option "ScrollMethod" "button"
Option "NaturalScrolling" "true"
EndSection
Funciona quando o dispositivo é conectado a quente após o início da sessão e sobrevive durante a suspensão/retomada, conforme relatado por Tim (OP).
Referências:
- homem (4) entrada de lib
man xorg.conf
- Archlinux: aceleração do mouse