Los datos del sistema de entrada salen como estructuras, no como simples números enteros. El dispositivo de ratones está obsoleto, creo. El método preferido son las interfaces de dispositivos de eventos, donde también se pueden obtener los eventos de entrada del mouse (y otros). Escribí un código que hace esto, el módulo Event.py. Puede usar eso o comenzar desde allí.
Estoy en un dispositivo básico y no tengo acceso a X o... así que event.py no funciona.
Así que aquí está mi parte de código de decodificación más simple para interpretar desde "obsoleto" '/dev/input/mice':
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();