Le défilement naturel ne fonctionne pas pour le défilement horizontal, comment y remédier?

8

J'ai activé le défilement naturel via les diverses options d' Ubuntu Tweak , mais cela ne semble pas prendre effet pour le défilement horizontal - ni dans les navigateurs Web, ni dans nautilus ou d'autres applications natives.

Existe-t-il un moyen d'appliquer également ce comportement au défilement horizontal?

J'utilise Ubuntu 12.04.

Eliran Malka
la source

Réponses:

4

Il y a aussi un « plus agréable » xorg.conffaçon basée à rendre les inversées <V_DISTANCE>et les <H_DISTANCE>paramètres (déterminé en fonction de @ réponse de Eliran ) permanente:

Créez un répertoire /etc/X11/xorg.conf.d/, et dans celui-ci un fichier comme 51-synaptics-tweaks.conf, contenant:

Section "InputClass"
    Identifier "touchpad"
    Driver "synaptics"
    MatchIsTouchpad "on"
        Option "VertTwoFingerScroll" "on"
        Option "HorizTwoFingerScroll" "on"
        # In the following lines, use your own negative V_DISTANCE / H_DISTANCE values.
        Option "VertScrollDelta" "-113"
        Option "HorizScrollDelta" "-113"
EndSection

Cela suit les recommandations d'Ubuntu dans les /usr/share/xorg.conf.d/*fichiers d'exemple ainsi que les instructions Archlinux . Pour voir l'effet, redémarrez X bien sûr :)

tanius
la source
agréable et propre, +1!
Eliran Malka
en fait, c'est génial. accepter :)
Eliran Malka
9

Au lieu d'utiliser une application désignée pour configurer le défilement naturel, un script peut être créé pour inverser les directions de défilement - à la fois sur l'axe vertical et horizontal.

  1. Tout d'abord, obtenez l' xinputhélice liée à la distance de défilement (notez les variables enveloppées entre crochets):

    $ xinput list
    ⎡ Virtual core pointer id=2 [master pointer (3)]
    ⎜   ↳ Virtual core XTEST pointer id=4   [slave pointer (2)]
    ⎜   ↳ SynPS/2 Synaptics TouchPad id=<TOUCHPAD_ID>   [slave pointer (2)]
    ⎣ Virtual core keyboard id=3    [master keyboard (2)]
        (...)
    
  2. Récupérez les valeurs appropriées pour cet accessoire:

    $ xinput list-props <TOUCHPAD_ID> | grep "Scrolling Distance"
        Synaptics Scrolling Distance (<DISTANCE_KEY>):  <V_DISTANCE>, <H_DISTANCE>
        Synaptics Circular Scrolling Distance (301):    0.100000
    
  3. Ensuite, créez le fichier de script pour appliquer les directions inversées, en annulant les valeurs de distance verticale / horizontale. Nourrissez les variables retournées précédemment:

    #!/bin/sh
    xinput set-prop <TOUCHPAD_ID> <DISTANCE_KEY> -<V_DISTANCE> -<H_DISTANCE>
    nautilus -q
    nautilus -n &
    
  4. Accordez le fichier avec des autorisations d'exécution, définissez-le pour qu'il s'exécute au démarrage, et vous l'avez.

La source:

Cette méthode a été transférée de l'ancien blog Web d' Andy C. , pour créer une réponse autonome. Merci, Andy, d'avoir fourni une solution élégante à l'échelle du système.

Remarques

  • Il semble que l'appel à nautilus casse le script le 13.04. L'omission des deux appels à Nautilus le résout.
  • Le défilement naturel (à la fois verticalement et horizontalement) fonctionne correctement prêt à l'emploi dans 14.x, donc pas besoin de scripter là-bas, il suffit de basculer le "Défilement naturel" dans les options de la souris et du pavé tactile.
Eliran Malka
la source
3

Au lieu d'utiliser des fichiers de script ou Ubuntu Tweak, vous pouvez également essayer l'application appelée "Natural Scrolling", faite par Zedtux. Cela viendra comme indicateur.

Pour l'installer, le plus simple est d'utiliser un terminal:

sudo apt-add-repository ppa:zedtux/naturalscrolling
sudo apt-get update
sudo apt-get install naturalscrolling
Agmenor
la source
je suis au courant de ça. il semble cependant que la tâche échoue pour certaines applications natives. De plus, il semble redondant d'installer une application (et d'encombrer le panneau avec un autre indicateur) uniquement à cette fin, tandis qu'un script à quatre lignes peut résoudre ce problème, peut-être mieux. merci pour l'alternative de toute façon.
Eliran Malka
1
Intéressant que votre script fonctionne pour n'importe quelle fenêtre! J'ai en effet un bug avec ça. Je vais essayer avec votre solution.
Agmenor
1

Dans xfce4 (Xubuntu, Ubuntu Studio, ...) vous pouvez ajouter ceci sur la console:

echo 'pointer = 1 2 3 4 5 7 6 8 9 10 11 12' >> .Xmodmap
xmodmap .Xmodmap
rubo77
la source