[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Perte du pointeur de la souris avec le Touchpad de l'Ultrabook LDLC IRIS B2



Bonjour,

Après quelques recherches sur internet, j'ai trouvé un petit programme python, ci-joint, pour piloter le touchpad de l'ultrabook LDLC IRIS qui est fourni sans pilote pour linux. Seulement, lorsque j'utilise l’écran tactile, le pointeur de la souris disparaît. Et le pointeur ne réapparaît pas lors de l'utilisation du touchpad bien que celui ci continue d’être opérationnel. Un petit mouvement de souris permet de faire réapparaître le pointeur et alors le touchpad redevient fonctionnel.

D’après ce que j'ai pu lire il y a bien des soucis d'affichage du curseur ente le touchpad et l’écran tactile. seulement la commande ci-dessous devrait résoudre ce problème, ce n'est pas le cas chez moi.

$ dconf write /org/gnome/settings-daemon/plugins/cursor/active false

Ma question est:
Connaissez vous une commande pour forcer l'affichage du pointeur?
A défaut:
Connaissez vous une commande pour garder l'affichage du pointeur lors de l'utilisation de l’écran tactile?

Merci pour votre aide

Olivier



touchpad.py

#!/usr/bin/python
import sys
import os
import usb.core
import usb.util

#Find the device idVendor 0x294e / idProduct 0x1001
dev = usb.core.find(idVendor=0x294e, idProduct=0x1001)
#Select interface 0 and endpoint 0
interface = 0
endpoint = dev[0][(0,0)][0]
#Detach kernel driver
if dev.is_kernel_driver_active(interface) is True:
    dev.detach_kernel_driver(interface)
    usb.util.claim_interface(dev, interface)

collected = 0 #variable to skip the first two data
testsup = float(100)
testinf = float(127)
deplacement = testsup/testinf
sensibilite = 2.5
x = 0
y = 0
click = ""
mouse_btn_l = 0
mouse_btn_r = 0
#set cursor visibility
os.system("dconf write /org/gnome/settings-daemon/plugins/cursor/active false")


#Infinite while
while 1:
    try:
        data = dev.read(endpoint.bEndpointAddress, endpoint.wMaxPacketSize)
        collected += 1
        print data
        #The 2 first data are not move data
        if collected > 2:
            #data[1] Right (1) & Left (255) = x
            #data[2] Down (1) & Up (255) = y

            # x
            if (1 <= data[1] <= 127): #Right
                 x = data[1]*deplacement*sensibilite
            elif (128 <= data[1] <= 255): #Left
                 x = -((-data[1]+256)*deplacement*sensibilite)
            else : #No move on x axis
                 x = 0

            # y
            if (1 <= data[2] <= 127): #Down
                y = data[2]*deplacement*sensibilite
            elif (128 <= data[2] <= 255): #Up
                y = -((-data[2]+256)*deplacement*sensibilite)
            else : #No move on y axis
                y = 0

            #wheel is considere as a btn : 4 for up & 5 for down
            if 1 <= data[3] <= 127: #up
                click = "click 4"
            elif 128 <= data[3] <= 255: #down
                click = "click 5"
            else:
                click = " "

            #Left click
            if data[0] == 1 and mouse_btn_l == 0:
                click = "mousedown 1"
                mouse_btn_l = 1
            #Right click
            elif data[0] == 2 and mouse_btn_r == 0:
                click = "mousedown 3"
                mouse_btn_r = 1
            #No click
            elif data[0] == 0:
                if mouse_btn_l == 1:
                    click = "mouseup 1"
                if mouse_btn_r == 1:
                    click = "mouseup 3"
                mouse_btn_l = 0
                mouse_btn_r = 0
            else:
                click = " "


        os.system("xdotool mousemove_relative -- %d %d %s" % (x, y, click))
        #    if data[0] == 1: #Right click
        #        os.system("xdotool click 1")

    #Error
    except usb.core.USBError as e:
        data = None
        if e.args == ('Operation timed out',):
            continue
usb.util.release_interface(dev, interface)
#dev.attach_kernel_driver(interface)


Reply to: