web-dev-qa-db-fra.com

Drag Lock ne fonctionne pas sur une installation fraîche 20.04

C'est un Dell Inspiron 15 7559 de 2016 qui est venu préinstallé avec Ubuntu à l'époque. J'avais plus tard couru 16.04 depuis 4 ans sans problème.

Hier, j'ai fait une nouvelle installation (a effacé le disque) avec 20,04 (sur le bios héritée parce que UEFI a provoqué des problèmes avec audio) seulement pour savoir que je ne peux pas obtenir de verrouillage de la glace travailler.

xinput list

me donne généralement (le 16.04 et 20.04)

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN1010:00 04F3:3012 Mouse               id=12   [slave  pointer  (2)]
⎜   ↳ ELAN1010:00 04F3:3012 Touchpad            id=13   [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                  id=16   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Sleep Button                              id=10   [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD: Integrate           id=11   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=14   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=15   [slave  keyboard (3)]
    ↳ Dell Wireless hotkeys                     id=17   [slave  keyboard (3)]

et l'ID des deux appareils TouchPad semble parfois changer, alors j'utilise les noms complets des deux périphériques pour définir des propriétés sur eux.

Le 16.04, je faisais exécuter ce qui suit sur la connexion pour activer le verrou de glisser.

xinput --set-prop "ELAN1010:00 04F3:3012 Touchpad" "Synaptics Locked Drags" 1
xinput --set-prop "ETPS/2 Elantech Touchpad" "Synaptics Locked Drags" 1

Ces deux commandes sont sorties car elle éteignent les noms de propriété ont été modifiés de synaptiques à libinput. En cours xinput --list-props sur l'un ou l'autre donne moi ce qui suit

Device 'ELAN1010:00 04F3:3012 Touchpad':
    Device Enabled (197):   1
    Coordinate Transformation Matrix (199): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Tapping Enabled (349): 1
    libinput Tapping Enabled Default (350): 0
    libinput Tapping Drag Enabled (351):    1
    libinput Tapping Drag Enabled Default (352):    1
    libinput Tapping Drag Lock Enabled (353):   0
    libinput Tapping Drag Lock Enabled Default (354):   0
    libinput Tapping Button Mapping Enabled (355):  1, 0
    libinput Tapping Button Mapping Default (356):  1, 0
    libinput Natural Scrolling Enabled (333):   1
    libinput Natural Scrolling Enabled Default (334):   0
    libinput Disable While Typing Enabled (357):    1
    libinput Disable While Typing Enabled Default (358):    1
    libinput Scroll Methods Available (335):    1, 1, 0
    libinput Scroll Method Enabled (336):   1, 0, 0
    libinput Scroll Method Enabled Default (337):   1, 0, 0
    libinput Click Methods Available (359): 1, 1
    libinput Click Method Enabled (360):    0, 1
    libinput Click Method Enabled Default (361):    1, 0
    libinput Middle Emulation Enabled (362):    0
    libinput Middle Emulation Enabled Default (363):    0
    libinput Accel Speed (340): 0.000000
    libinput Accel Speed Default (341): 0.000000
    libinput Left Handed Enabled (345): 0
    libinput Left Handed Enabled Default (346): 0
    libinput Send Events Modes Available (318): 1, 1
    libinput Send Events Mode Enabled (319):    0, 0
    libinput Send Events Mode Enabled Default (320):    0, 0
    Device Node (321):  "/dev/input/event12"
    Device Product ID (322):    1267, 12306
    libinput Drag Lock Buttons (347):   <no items>
    libinput Horizontal Scroll Enabled (348):   1

et

Device 'ETPS/2 Elantech Touchpad':
    Device Enabled (197):   1
    Coordinate Transformation Matrix (199): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Tapping Enabled (349): 1
    libinput Tapping Enabled Default (350): 0
    libinput Tapping Drag Enabled (351):    1
    libinput Tapping Drag Enabled Default (352):    1
    libinput Tapping Drag Lock Enabled (353):   0
    libinput Tapping Drag Lock Enabled Default (354):   0
    libinput Tapping Button Mapping Enabled (355):  1, 0
    libinput Tapping Button Mapping Default (356):  1, 0
    libinput Natural Scrolling Enabled (333):   1
    libinput Natural Scrolling Enabled Default (334):   0
    libinput Disable While Typing Enabled (357):    1
    libinput Disable While Typing Enabled Default (358):    1
    libinput Scroll Methods Available (335):    1, 1, 0
    libinput Scroll Method Enabled (336):   1, 0, 0
    libinput Scroll Method Enabled Default (337):   1, 0, 0
    libinput Click Methods Available (359): 1, 1
    libinput Click Method Enabled (360):    0, 1
    libinput Click Method Enabled Default (361):    1, 0
    libinput Middle Emulation Enabled (362):    0
    libinput Middle Emulation Enabled Default (363):    0
    libinput Accel Speed (340): 0.000000
    libinput Accel Speed Default (341): 0.000000
    libinput Left Handed Enabled (345): 0
    libinput Left Handed Enabled Default (346): 0
    libinput Send Events Modes Available (318): 1, 1
    libinput Send Events Mode Enabled (319):    0, 0
    libinput Send Events Mode Enabled Default (320):    0, 0
    Device Node (321):  "/dev/input/event7"
    Device Product ID (322):    2, 14
    libinput Drag Lock Buttons (347):   <no items>
    libinput Horizontal Scroll Enabled (348):   1

Par conséquent, j'ai naturellement essayé ce qui suit

xinput --set-prop "ELAN1010:00 04F3:3012 Touchpad" "libinput Tapping Drag Lock Enabled" 1
xinput --set-prop "ETPS/2 Elantech Touchpad" "libinput Tapping Drag Lock Enabled" 1

qui réussissent à définir les propriétés, mais le comportement du touchpad ne change pas.

Enfin, j'ai également mis à jour les paramètres GNOME et assurez-vous que

gsettings obtiennent org.gnome.desktop.periphériques.Touchpad Tap-and-Drag

donne moi

vrai

Jusqu'à présent, je suis incapable de faire ce travail.

PS: J'utilise Xorg comme

echo $XDG_SESSION_TYPE

les sorties

x11

PPS: le contenu de /proc/bus/input/devices sont les suivants pour les appareils pertinents

I: Bus=0011 Vendor=0002 Product=000e Version=0000
N: Name="ETPS/2 Elantech Touchpad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input6
U: Uniq=
H: Handlers=mouse2 event7 
B: PROP=5
B: EV=b
B: KEY=e420 10000 0 0 0 0
B: ABS=661800011000003

I: Bus=0018 Vendor=04f3 Product=3012 Version=0100
N: Name="ELAN1010:00 04F3:3012 Touchpad"
P: Phys=i2c-ELAN1010:00
S: Sysfs=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-ELAN1010:00/0018:04F3:3012.0001/input/input15
U: Uniq=
H: Handlers=mouse1 event12 
B: PROP=5
B: EV=1b
B: KEY=e520 10000 0 0 0 0
B: ABS=2e0800000000003
B: MSC=20

PPP: il n'y a pas /etc/x11/xorg.conf ou alors /etc/x11/xorg.conf.d/ présent sur mon lecteur.

PPPPS: Il y a des informations à ce sujet dans les Pages de libinpput mais je ne comprends honnêtement pas les étapes nécessaires pour le faire fonctionner

[~ # ~] Edition [~ # ~] Basé sur le commentaire de @ hi-ange libinput prend en charge Drag Lock mais a une valeur par défaut et 300ms non configurés Timeout pour cela, voici donc quelques mises à jour pouvant aider à vous déplacer dans cette direction pour une solution:

  • ne autre question suggère que SyncLient prend en charge les délais d'attente configurables (défaut de 5000, libinput ne le fait pas)
  • A problème signalé révèle que libinput de mainteneurs ne semblent pas saisir immédiatement l'utilité de cette
  • n PR et n autre ont été abandonnés en essayant de l'obtenir dans

Je suis inconnu avec les travaux intérieurs de la programmation de libinput et C en général, pensez-vous qu'il y a une façon de pouvoir obtenir cela fonctionner sur mon ordinateur _ (sans avoir à reconstruire une version locale personnalisée de libinput et avoir à le maintenir pour toujours ?) _

1
Serkan Durusoy

Par commentaires, le verrou de glisser fonctionne réellement, mais il est facile à manquer car le délai de traînée (c'est-à-dire l'heure pour laquelle "glisser" fonctionne après avoir soulevé un doigt du pavé tactile, mais avant de le mettre Retour) est très petit, il est de 300 ms. Synaptics l'a eu 5 secondes par défaut.

La raison pour laquelle il est si petit est d'être discrète. Bien qu'il puisse probablement être une valeur dans l'augmentation de l'infini pour des raisons d'accessibilité.

ATM Il n'y a pas de moyen facile de changer de délai d'attente. En tant que pirate, on peut changer la valeur du délai d'attente de cette ligne et reconstruire libinput à partir de sources.

Cependant, comme indiqué à juste titre par l'OP, il y a une Open MR pour faire le délai d'attente configurable. Qui a été abandonné par l'auteur ainsi que la question correspondante . Mais il est facile de voir que le responsable est ouvert à l'idée. Vous pouvez essayer de rejoindre la discussion et si votre raisonnement s'avère être assez convaincant, il devrait être trivial de rebaser et de fusionner que MR.

1
Hi-Angel

Voici une solution pour le pavé tactile.

Installez la synaptique avec Sudo apt install xserver-xorg-input-synaptics , redémarrage.

Puis synclient LockedDrags=1 et cela devrait fonctionner.

Toujours à faire: identique pour la souris et faire des changements permanents entre les sessions. Vous allez nous expliquer comment faire.

0
Pierre ALBARÈDE