Naturalne przewijanie nie działa w przypadku przewijania w poziomie, jak to naprawić?

8

Włączyłem naturalne przewijanie za pomocą różnych opcji Ubuntu Tweak , ale wydaje się, że nie działa to w przypadku przewijania w poziomie - ani w przeglądarkach internetowych, ani w nautilusie, ani innych natywnych aplikacjach.

Czy istnieje sposób wymuszenia tego zachowania również podczas przewijania w poziomie?

Używam Ubuntu 12.04.

Eliran Malka
źródło

Odpowiedzi:

4

Istnieje również „ładniejszy” xorg.confsposób na ustawienie odwróconego <V_DISTANCE>i <H_DISTANCE>ustawień (określonych zgodnie z odpowiedzią @ Eliran ) na stałe:

Utwórz katalog /etc/X11/xorg.conf.d/, a w nim plik 51-synaptics-tweaks.confzawierający:

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

Jest to zgodne z zaleceniami Ubuntu w /usr/share/xorg.conf.d/*przykładowych plikach, a także instrukcjami Archlinux . Aby zobaczyć efekt, zrestartuj X oczywiście :)

Tanius
źródło
ładnie i czysto, +1!
Eliran Malka
to jest niesamowite. przyjmowanie :)
Eliran Malka
9

Zamiast używać wyznaczonej aplikacji do konfigurowania naturalnego przewijania, można utworzyć skrypt odwracający kierunki przewijania - zarówno na osi pionowej, jak i poziomej.

  1. Najpierw uzyskaj xinputrekwizyt związany z odległością przewijania (zwróć uwagę na zmienne owinięte w nawiasy kątowe):

    $ 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. Pobierz odpowiednie wartości dla tego wniosku:

    $ 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. Następnie utwórz plik skryptu, aby zastosować odwrócone kierunki, negując wartości odległości pionowej / poziomej. Nakarm zmienne zwrócone wcześniej:

    #!/bin/sh
    xinput set-prop <TOUCHPAD_ID> <DISTANCE_KEY> -<V_DISTANCE> -<H_DISTANCE>
    nautilus -q
    nautilus -n &
    
  4. Udziel pliku z uprawnieniami do wykonywania, ustaw go tak, aby był uruchamiany podczas uruchamiania, i gotowe.

Źródło:

Ta metoda została przeniesiona ze starego bloga internetowego Andy'ego C. , aby stworzyć samodzielną odpowiedź. Dziękujemy Andy za zapewnienie eleganckiego rozwiązania dla całego systemu.

Notatki

  • Wygląda na to, że wywołanie nautilusa psuje skrypt 13.04. Pominięcie dwóch wezwań do nautilusa rozwiązuje ten problem.
  • Naturalne przewijanie (zarówno w pionie, jak iw poziomie) działa poprawnie od razu po wyjęciu z pudełka w 14.x, więc nie ma potrzeby pisania skryptów, wystarczy przełączyć „Naturalne przewijanie” w opcjach myszy i touchpada.
Eliran Malka
źródło
3

Alternatywą dla plików skryptów lub Ubuntu Tweak jest wypróbowanie aplikacji „Natural Scrolling” firmy Zedtux. Przyjdzie jako wskaźnik.

Aby go zainstalować, najłatwiej jest użyć terminala:

sudo apt-add-repository ppa:zedtux/naturalscrolling
sudo apt-get update
sudo apt-get install naturalscrolling
Agmenor
źródło
jestem tego świadomy. wydaje się jednak, że nie powiedzie się to w przypadku niektórych aplikacji natywnych. co więcej, wydaje się zbędne instalowanie aplikacji (i zaśmiecanie panelu jeszcze innym wskaźnikiem) wyłącznie w tym celu, podczas gdy skrypt czterowierszowy może to rozwiązać, być może lepiej. w każdym razie dzięki za alternatywę.
Eliran Malka
1
Ciekawe, że twój skrypt działa w każdym oknie! Naprawdę mam z tym błąd. Spróbuję z twoim rozwiązaniem.
Agmenor,
1

W xfce4 (Xubuntu, Ubuntu Studio, ...) możesz dodać to na konsoli:

echo 'pointer = 1 2 3 4 5 7 6 8 9 10 11 12' >> .Xmodmap
xmodmap .Xmodmap
rubo77
źródło