Natürliches Scrollen funktioniert nicht beim horizontalen Scrollen. Wie kann man das beheben?

8

Ich habe das natürliche Scrollen über die verschiedenen Optionen von Ubuntu Tweak aktiviert , aber das scheint für das horizontale Scrollen nicht wirksam zu sein - weder in Webbrowsern noch in Nautilus oder anderen nativen Anwendungen.

Gibt es eine Möglichkeit, dieses Verhalten auch beim horizontalen Scrollen zu erzwingen?

Ich benutze Ubuntu 12.04.

Eliran Malka
quelle

Antworten:

4

Es gibt auch eine "schönere" xorg.confMöglichkeit, die Umkehrung <V_DISTANCE>und die <H_DISTANCE>Einstellungen (bestimmt gemäß der Antwort von @ Eliran ) dauerhaft zu machen:

Erstellen Sie ein Verzeichnis /etc/X11/xorg.conf.d/und darin eine Datei wie 51-synaptics-tweaks.conf:

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

Dies folgt den Empfehlungen von Ubuntu in den /usr/share/xorg.conf.d/*Beispieldateien und den Anweisungen von Archlinux . Um den Effekt zu sehen, starte X natürlich neu :)

Tanius
quelle
schön und sauber, +1!
Eliran Malka
Eigentlich ist das großartig. Akzeptieren :)
Eliran Malka
9

Anstatt eine bestimmte Anwendung zum Konfigurieren des natürlichen Bildlaufs zu verwenden, kann ein Skript erstellt werden, um die Bildlaufrichtungen umzukehren - sowohl auf der vertikalen als auch auf der horizontalen Achse.

  1. Erhalten Sie zunächst die xinputRequisite in Bezug auf die Bildlaufentfernung (beachten Sie die Variablen in spitzen Klammern):

    $ 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. Holen Sie sich die entsprechenden Werte für diese Requisite:

    $ 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. Erstellen Sie dann die Skriptdatei, um die umgekehrten Richtungen anzuwenden, indem Sie die Werte für den vertikalen / horizontalen Abstand negieren. Füttere die zuvor zurückgegebenen Variablen:

    #!/bin/sh
    xinput set-prop <TOUCHPAD_ID> <DISTANCE_KEY> -<V_DISTANCE> -<H_DISTANCE>
    nautilus -q
    nautilus -n &
    
  4. Gewähren Sie der Datei Ausführungsberechtigungen, stellen Sie sie so ein, dass sie beim Start ausgeführt wird, und schon haben Sie sie.

Quelle:

Diese Methode wurde aus Andy Cs altem Webblog portiert , um eine eigenständige Antwort zu erstellen. Vielen Dank, Andy, dass Sie eine elegante, systemweite Lösung bereitgestellt haben.

Anmerkungen

  • Es scheint, dass der Aufruf von nautilus das Skript am 13.04 bricht. Das Weglassen der beiden Anrufe bei Nautilus löst das Problem.
  • Das natürliche Scrollen (sowohl vertikal als auch horizontal) funktioniert in 14.x sofort einsatzbereit. Sie müssen dort also keine Skripte erstellen. Schalten Sie einfach das "Natürliche Scrollen" in den Maus- und Touchpad-Optionen um.
Eliran Malka
quelle
3

Alternativ zur Verwendung von Skriptdateien oder Ubuntu Tweak können Sie auch die App "Natural Scrolling" von Zedtux ausprobieren. Es wird als Indikator kommen.

Um es zu installieren, verwenden Sie am einfachsten ein Terminal:

sudo apt-add-repository ppa:zedtux/naturalscrolling
sudo apt-get update
sudo apt-get install naturalscrolling
Agmenor
quelle
Ich bin mir dessen bewusst. Es scheint jedoch, dass die Aufgabe für einige native Anwendungen fehlschlägt. Außerdem scheint es überflüssig, eine Anwendung nur für diesen Zweck zu installieren (und das Panel mit einem weiteren Indikator zu überladen), während ein vierzeiliges Skript dies möglicherweise besser beheben kann. trotzdem danke für die alternative.
Eliran Malka
1
Interessant, dass Ihr Skript für jedes Fenster funktioniert! Ich habe in der Tat einen Fehler damit. Ich werde es mit Ihrer Lösung versuchen.
Agmenor
1

In xfce4 (Xubuntu, Ubuntu Studio, ...) können Sie dies auf der Konsole hinzufügen:

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