I dati dal sistema di input escono come strutture, non semplici numeri interi. Il dispositivo mouse è deprecato, credo. Il metodo preferito sono le interfacce del dispositivo degli eventi, dove è possibile ottenere anche gli eventi di input del mouse (e altri). Ho scritto del codice che fa questo, il modulo Event.py Puoi usarlo o iniziare da lì.
Sono su un dispositivo di base e non ho accesso a X o... quindi event.py non funziona.
Quindi ecco la mia parte di codice di decodifica più semplice da interpretare da "/dev/input/mice" "deprecato":
import struct
file = open( "/dev/input/mice", "rb" );
def getMouseEvent():
buf = file.read(3);
button = ord( buf[0] );
bLeft = button & 0x1;
bMiddle = ( button & 0x4 ) > 0;
bRight = ( button & 0x2 ) > 0;
x,y = struct.unpack( "bb", buf[1:] );
print ("L:%d, M: %d, R: %d, x: %d, y: %d\n" % (bLeft,bMiddle,bRight, x, y) );
# return stuffs
while( 1 ):
getMouseEvent();
file.close();