Instalei recentemente o Ubuntu (e seus derivados Xubuntu e Kubuntu) no meu laptop.
No meu computador, tenho um touchpad e um trackpoint. No Windows, o touchpad é desativado quando uso o trackpoint.
Existe alguma maneira de recriar isso no Linux?
Responder1
Pesquisei e procurei uma solução para esse problema exato e foi isso que descobri para se adequar ao meu sistema:
#!/bin/bash
#
#Change /dev/input/event13 to your trackstick event
cat /dev/input/event13 > /tmp/mousemove &
#initialize counter to prevent garbage file from growing
i="0";
while true ; do
i=$[$i+1];
#variables
oldchecksum=${newchecksum};
newchecksum=`md5sum /tmp/mousemove | awk '{print $1}'`
#see if trackpad is already disabled
if [ "$trackpad" = "off" ]; then
#compare previous checksum to current if they're same trackstick is not moving
if [ "$oldchecksum" = "$newchecksum" ]; then
#make sure trackpad is enabled
xinput set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 1;
trackpad="on";
fi
else
#compare previous checksum to current if they're different trackstick is moving
if [ "$oldchecksum" != "$newchecksum" ]; then
#disable trackpad
xinput set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 0;
trackpad="off";
fi
fi
#check for count to keep poll file smaller
if [ "$i" = "300" ]; then
echo '' > /tmp/mousemove;
i="0";
newchecksum=`md5sum /tmp/mousemove | awk '{print $1}'`
fi
#sleep for 1 second so we don't eat up resources
#if the update speed is not fast enough for you a smaller number such as .75 may be better
sleep 1;
done
Desde que executo o fluxbox no arch, adicionei a chamada de script no meu~/.fluxbox/apps
A única ressalva que consegui encontrar foi que se você conseguir pkill cat como root, no qual este script deve ser executado para acessar o evento do mouse, você matará o script, ao mesmo tempo se você matar o script e não matar cat ele continuará em execução até que você fique sem espaço em /tmp
, pkill cat ou reinicie o sistema.
Responder2
Eu tenho um truque simples (hackear, na verdade):
xinput set-prop "DLL07B0:01 044E:120B" "Synaptics Finger" 100 1000 100
O que ele faz é definir parâmetros de pressão errados (mín > máximo) e alguns tamanhos de dedo ridículos.
Synaptics Finger
32 bit, 3 values, low, high, press.
Option "FingerLow" "integer"
When finger pressure drops below this value, the driver counts it as a release. Property: "Synaptics Finger"
Option "FingerHigh" "integer"
When finger pressure goes above this value, the driver counts it as a touch. Property: "Synaptics Finger"
Assim, o driver contará mesmo como uma prensa quando a pressão > 1000 e a pressão < 100, o que é logicamente impossível.