Естественная прокрутка не работает для горизонтальной прокрутки, как это исправить?

8

Я включил естественную прокрутку с помощью различных опций Ubuntu Tweak , но, похоже, это не действует для горизонтальной прокрутки - ни в веб-браузерах, ни в nautilus, ни в других собственных приложениях.

Есть ли способ применить такое поведение и к горизонтальной прокрутке?

Я использую Ubuntu 12.04.

Элиран Малка
источник

Ответы:

4

Существует также «более приятный» xorg.confспособ сделать инвертированными настройки <V_DISTANCE>и <H_DISTANCE>параметры (определяемые согласно ответу @ Eliran ) постоянными:

Создайте каталог /etc/X11/xorg.conf.d/, а в нем такой файл 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

Это следует рекомендациям Ubuntu в /usr/share/xorg.conf.d/*файлах примеров, а также инструкциям Archlinux . Чтобы увидеть эффект, перезагрузите X конечно :)

tanius
источник
красиво и чисто +1!
Элиран Малка
на самом деле, это круто. принимаю :)
Элиран Малка
9

Вместо использования назначенного приложения для настройки естественной прокрутки можно создать сценарий для изменения направления прокрутки - как по вертикальной, так и по горизонтальной оси.

  1. Сначала получите xinputреквизит, связанный с расстоянием прокрутки (обратите внимание на переменные, заключенные в угловые скобки):

    $ 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. Получите соответствующие значения для этого реквизита:

    $ 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. Затем создайте файл сценария, чтобы применить обратные направления, отрицая значения для вертикального / горизонтального расстояния. Поток переменных, возвращенных ранее:

    #!/bin/sh
    xinput set-prop <TOUCHPAD_ID> <DISTANCE_KEY> -<V_DISTANCE> -<H_DISTANCE>
    nautilus -q
    nautilus -n &
    
  4. Предоставьте файлу разрешения на выполнение, настройте его на запуск при запуске, и вот он у вас.

Источник:

Этот метод был портирован из старого веб-блога Энди С. , чтобы создать самостоятельный ответ. Спасибо, Энди, за элегантное решение для всей системы.

Ноты

  • Кажется, что вызов nautilus нарушает работу сценария 13.04. Пропустить два звонка наутилус решает проблему.
  • Естественная прокрутка (как по вертикали, так и по горизонтали) работает должным образом из коробки в 14.x, поэтому нет необходимости в сценариях, просто включите «Естественную прокрутку» в настройках мыши и сенсорной панели.
Элиран Малка
источник
3

В качестве альтернативы использованию файлов сценариев или Ubuntu Tweak, вы также можете попробовать приложение «Natural Scrolling», созданное Zedtux. Это придет в качестве индикатора.

Для его установки проще всего использовать терминал:

sudo apt-add-repository ppa:zedtux/naturalscrolling
sudo apt-get update
sudo apt-get install naturalscrolling
Agmenor
источник
Я знаю об этом. кажется, однако, чтобы не выполнить задачу для некоторых нативных приложений. Кроме того, кажется излишним устанавливать приложение (и загромождать панель еще одним индикатором) исключительно для этой цели, в то время как сценарий с четырьмя строками может решить эту проблему, возможно, лучше. спасибо за альтернативу в любом случае.
Элиран Малка
1
Интересно, что ваш скрипт работает для любого окна! У меня действительно есть ошибка с этим. Я попробую ваше решение.
Агменор
1

В xfce4 (Xubuntu, Ubuntu Studio, ...) вы можете добавить это на консоли:

echo 'pointer = 1 2 3 4 5 7 6 8 9 10 11 12' >> .Xmodmap
xmodmap .Xmodmap
rubo77
источник