Sim, isso pode ser feito e é relativamente fácil de fazer. Você precisa criar 3 arquivos - uma regra do udev e dois scripts.
Regra UDEV
Uma regra UDEV detectaria um evento de plug do mouse e acionaria um script sempre que o evento acontecesse. Crie um arquivo em /etc/udev/rules.d
:
sudo gedit /etc/udev/rules.d/42-kill-mouse-accel.rules
Cole a seguinte linha:
ACTION=="add", ATTRS{bInterfaceClass}=="03", ENV{DISPLAY}=":0.0", ENV{XAUTHORITY}="/home/[YOUR_USER_NAME]/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/usr/local/bin/kill-mouse-accel.sh"
Observe a parte que diz [YOUR_USER_NAME]
, você precisa substituí-lo pelo seu nome de usuário.
Salve e saia do Gedit.
Script de aceleração
O script de aceleração seria o código acionado pela regra UDEV, que, por sua vez, separaria um script de trabalho em segundo plano. O script de plano de fundo faria o trabalho real. Fazemos isso porque queremos esperar um pouco antes de mudar a aceleração, mas não queremos bloquear a UDEV. Crie um arquivo em /usr/local/bin
:
sudo gedit /usr/local/bin/kill-mouse-accel.sh
Cole o seguinte código:
#!/bin/bash
export DISPLAY=${DISPLAY}
/usr/local/bin/kill-mouse-accel-worker.sh &
Salve e saia do Gedit.
Script de aceleração em segundo plano
Este script é onde o comando que desabilita a aceleração do mouse é chamado. Crie um arquivo em /usr/local/bin
:
sudo gedit /usr/local/bin/kill-mouse-accel-worker.sh
Cole o seguinte código:
#!/bin/bash
sleep 2
for i in $(xinput list | grep [Mm]ouse | sed -e 's/^.*id=\([0-9]*.\).*$//')
do
echo "Found device: $i"
# The command disabling mouse acceleration
xinput set-ptr-feedback $i 10 1 1
done
Salve e saia do Gedit.
Finalização e teste
Torne os dois scripts executáveis:
sudo chmod +x /usr/local/bin/kill-mouse-accel.sh /usr/local/bin/kill-mouse-accel-worker.sh
Reinicie o UDEV:
sudo service udev restart
Por fim, reconecte seu mouse USB e aguarde alguns segundos. A aceleração do mouse deve ser desativada.
Créditos
O crédito vai para o autor da seguinte postagem no blog: link