Configuration avancée de défilement inertiel

9

Est-il possible de configurer le défilement inertiel synaptique de manière à ce qu'il soit interrompu lorsqu'une touche est enfoncée sur le clavier?

Pour expliquer cette question: j'utilise souvent des raccourcis. Maintenant, lorsque je navigue par exemple sur le Web et que je fais défiler vers le haut d'un site Web en utilisant le défilement inertiel, je fais un zoom fou sur le site si j'essaie d'ouvrir un nouvel onglet avec Ctrl+ Tcar le navigateur ne détecte que Ctrl+ scrolling.

Cela se produit dans de nombreuses applications et est vraiment ennuyeux. J'aimais le défilement inertiel, mais tant que ce problème persiste, je dois le désactiver.

Mouagip
la source
Est-ce Strgla même chose que Ctrl?
jobin
@Jobin oui, c'est le label allemand. Désolé, j'ai oublié de le changer.
Mouagip

Réponses:

5

Je crains que cela n'ait déjà été discuté sur Xorg et qu'il soit marqué comme "Résolu résolu" mais ne sera pas corrigé car Xorg ne se rendra pas compte lorsque vous appuyez Ctrlet que le défilement inertiel est toujours en place. (Voir le commentaire de Peter Hutterer et son analogie avec Ctrl).

Donc, au moins jusqu'à ce que nous ayons Unity 8 (lorsque Xorg est remplacé par Mir et, espérons-le, nous voyons cela comme vraiment résolu), nous ne pouvons avoir qu'une solution de contournement plutôt qu'une solution parfaite ou désactiver complètement le défilement inertiel.

L'un des correctifs que je recommanderais est de désactiver la fonctionnalité Ctrl+ scrollingdans l'application elle-même. C'est certainement une solution impure car le problème est toujours en place mais seul l'effet est supprimé et vous devrez le faire pour n'importe quelle application que vous utilisez le plus souvent le défilement inertiel.

Pour désactiver la fonctionnalité Ctrl+ scrollingdans Firefox, tapez about:configdans la barre d'adresse puis cliquez sur "Je ferai attention, je le promets!" Maintenant, dans la barre de recherche, tapez mousewheel.with_control.actionet double-cliquez sur le premier résultat et définissez sa valeur sur 1, qui ne ferait que faire défiler le contenu au lieu de zoomer. Vous pouvez définir sa valeur sur les valeurs suivantes avec les effets correspondants:

  • 0 (désactivé)
  • 1 (faire défiler le contenu)
  • 2 (revenir en arrière / avancer dans votre histoire)
  • 3 (par défaut, zoom avant / arrière)

Je mettrai à jour la réponse si je peux trouver une solution plus propre et meilleure.

jobin
la source
1
pour les utilisateurs de Chrome, voici une extension qui (le plus souvent) gère le problème
MInner
Pour les utilisateurs LXDE / Openbox, ici est une question qui gère la Alt+ scrolling« folie de commutation de bureau », ce qui est un autre symptôme du même problème sous - jacent.
tanius
y a-t-il des nouvelles sur ce problème?
glS
2

Le cabotage en coin aide! Bien que ce ne soit pas un vrai correctif, j'ai trouvé que l'utilisation du CornerCoastingmode du pilote Synaptics au lieu du mode de défilement inertiel normal (sans doigt) aide. Raison: le mode roue libre en coin est actif tout en gardant le doigt dans le coin et s'arrête immédiatement lors du relâchement. Tout en appuyant sur Ctrlpendant le virage en coin crée toujours le problème de "folie du zoom de Firefox" que vous décrivez, j'ai trouvé que je suis très peu susceptible de le faire pendant que je suis activement impliqué dans une action (c'est-à-dire avec le doigt sur le pavé tactile plutôt que le cabotage sans doigt).

Essayer le cabotage de coin. La commande suivante configure le mode de roue libre en coin:

synclient VertEdgeScroll=1 CornerCoasting=1 CoastingSpeed=1 CoastingFriction=0

VertEdgeScroll=1est parce que le cabrage en coin ne fonctionne qu'avec le défilement des bords, pas avec le défilement à deux doigts. Si vous aimez les virages en coin sur les bords droit et inférieur, ajoutez HorizEdgeScroll=1à la ligne ci-dessus. CornerCoasting=1active le mode roue libre en virage. CoastingSpeedest la vitesse minimale de défilement pendant le cabotage, mais cela semble également être la vitesse minimale du curseur pour le déclencher. Je l'ai donc réglé au minimum pour faciliter le déclenchement du mode, ce qui peut être difficile (et impossible avec quelque chose comme ça CoastingSpeed=100). CoastingFrictionest une valeur permettant au défilement inertiel de disparaître. Nous le désactivons ici pour le maintenir en place jusqu'à ce que vous leviez le doigt, différent de ce qui est généralement souhaité dans les cabotages conventionnels. Pour plus de détails sur ces options, consultez la page de manuel Synaptics .

Quelque chose qui n'est pas mentionné dans la page de manuel: le cabotage dans les coins est apparemment activé en glissant d'une zone de bord non-coin dans une zone de coin, puis en maintenant le doigt dessus . Ainsi, le mouvement de cabrage en coin s'arrête si vous soulevez accidentellement le doigt, pendant très peu de temps même, en vous cognant contre / sur le bord du pavé tactile. Le mode de déclenchement «se déplacer dans une zone de coin» signifie également que le cabotage en coin ne fonctionnera pas ou sera difficile à déclencher si votre TopEdgeetBottomEdgeles paramètres laissent peu ou pas de zone non coin au bord. Celles-ci sont pertinentes ici car les zones d'angle sont définies par les intersections des zones de bord. De plus, sans zone de bord droit de taille accessible, le déclenchement d'un cabrage en coin sera également difficile, voire impossible. Pour mon matériel (ThinkPad X201), j'ai trouvé que ces valeurs fonctionnaient bien (les vôtres peuvent être différentes, cela prend un peu d'expérimentation):

synclient RightEdge=4800 TopEdge=2000 BottomEdge=4000

Faire un bâton de roue libre. Bien qu'il synclientsoit idéal pour tester les paramètres avec effet immédiat, ils sont perdus lors du redémarrage de X. Pour les faire coller, créez un /etc/X11/xorg.conf.d/51-synaptics-cornercoasting.conffichier de configuration ou un nom similaire comme décrit ici (il fonctionne également dans Ubuntu!). Dans le cas ci-dessus, le contenu serait:

Section "InputClass"
    Identifier "Touchpad tweaks"
    Driver "synaptics"
    MatchIsTouchpad "on"
        Option "VertEdgeScroll" "on"
      # Option "HorizEdgeScroll" "on" # Enable if you want this.
        Option "CornerCoasting" "on"
        Option "CoastingSpeed" "1"
        Option "CoastingFriction" "0"

        Option "RightEdge" "4800"
        Option "TopEdge" "2000"
        Option "BottomEdge" "4000"
EndSection

Et puis redémarrez X pour voir l'effet, bien sûr.

tanius
la source
0

Substituts possibles. Si vous souhaitez désactiver complètement le défilement inertiel parce que le bogue est tout simplement trop ennuyeux, il existe des substituts possibles (pas exactement le défilement inertiel, mais des modes de défilement sans effort similaires qui peuvent être utilisés à la place):

À l'échelle du système:

  • Défilement sensible du bouton Trackpoint. Celui-ci utilise un trackpoint ThinkPad (mais il peut être modifié pour d'autres trackpoints) pour le défilement pendant que le bouton middlemouse est enfoncé. Cela s'appelle le " défilement sur bouton " dans le libinputpilote et "l'émulation de la molette" dans l'ancien evdevpilote.

    L'idée est ici que vous le définissiez si sensible qu'un petit peu de pression constante défilera rapidement à travers de longues pages. Pour configurer cela, veuillez vous référer à cette question , en particulier. la réponse de @htorque qui fonctionne le mieux avec le libinputpilote (la valeur par défaut d'Ubuntu 17.10).

Spécifiquement pour Firefox:

  • Extension Grab and Drag . Cela fournit une sorte de mode de projection inertielle / traînée inertielle, assez similaire au défilement inertiel à deux doigts. Configurez-le pour utiliser le bouton gauche de la souris, qui est le mode le plus similaire au défilement inerte à deux doigts sur un pavé tactile. Utilisez simplement un doigt en appuyant et maintenez, puis "lancez la page Web". Cela interfère bien sûr avec la sélection du texte, mais ils ont un bouton pour désactiver temporairement l'extension.

    L'interférence de sélection de texte est ennuyeuse, mais sa configuration pour tout autre bouton de la souris sur un pavé tactile rend l'utilisation très délicate. (Par exemple, avec un clic du milieu, qui peut être configuré comme un clic à deux doigts sur le pavé tactile, ce serait: appuyez avec deux doigts, appuyez et maintenez avec deux doigts, soulevez un doigt, puis lancez le mouvement comme ci-dessus: D ).

  • Défilement automatique. Voir cette réponse pour savoir comment le configurer. En outre, configurez le tapotement à deux doigts pour créer un clic du milieu - en effet juste synclient TapButton2=2. Maintenant, un clic avec deux doigts fera apparaître l'élément de défilement automatique dans Firefox, et en éloignant le pointeur de la souris, il défilera en permanence dans cette direction jusqu'à ce qu'un clic se produise. Malheureusement, le déplacement du pointeur doit être fait avec un seul doigt. (Cela ne fonctionne tout simplement pas avec deux doigts, même lorsque le défilement à deux doigts est désactivé.) Et je n'ai pas pu trouver comment inverser le sens de défilement de cette fonction pour qu'elle soit "naturelle".

tanius
la source