Rolagem natural não funciona para rolagem horizontal, como corrigir isso?

8

Eu habilitei a rolagem natural através das opções diversas do Ubuntu Tweak , mas isso não parece ter efeito na rolagem horizontal - nem em navegadores da web, nem nautilus ou outros aplicativos nativos.

Existe uma maneira de impor esse comportamento também na rolagem horizontal?

Estou usando o Ubuntu 12.04.

Eliran Malka
fonte

Respostas:

4

Também existe uma maneira "mais agradável" xorg.confde tornar permanente o invertido <V_DISTANCE>e as <H_DISTANCE>configurações (determinadas de acordo com a resposta de @ Eliran ):

Crie um diretório /etc/X11/xorg.conf.d/e nele um arquivo como 51-synaptics-tweaks.conf, contendo:

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

Isso segue as recomendações do Ubuntu nos /usr/share/xorg.conf.d/*arquivos de exemplo e também as instruções do Archlinux . Para ver o efeito, reinicie o X, é claro :)

tanius
fonte
agradável e limpo, +1!
Eliran Malka
na verdade, isso é incrível. aceitar :)
Eliran Malka
9

Em vez de usar um aplicativo designado para configurar a rolagem natural, um script pode ser feito para reverter as direções da rolagem - no eixo vertical e horizontal.

  1. Primeiro, obtenha o xinputsuporte relacionado à distância de rolagem (observe as variáveis ​​entre colchetes):

    $ 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. Busque os valores apropriados para esse suporte:

    $ 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. Em seguida, crie o arquivo de script para aplicar as direções invertidas, negando os valores da distância vertical / horizontal. Alimente as variáveis ​​retornadas anteriormente:

    #!/bin/sh
    xinput set-prop <TOUCHPAD_ID> <DISTANCE_KEY> -<V_DISTANCE> -<H_DISTANCE>
    nautilus -q
    nautilus -n &
    
  4. Conceda ao arquivo permissões de execução, configure-o para executar na inicialização e pronto.

Fonte:

Este método foi transportado do antigo blog de Andy C. , para criar uma resposta independente. Obrigado, Andy, por fornecer uma solução elegante e abrangente para todo o sistema.

Notas

  • Parece que chamar o nautilus está quebrando o script em 13.04. Omitir as duas chamadas para o nautilus resolve isso.
  • A rolagem natural (na vertical e na horizontal) está funcionando corretamente pronta para uso no 14.x, portanto, não há necessidade de criar scripts lá, apenas alterne a opção "Rolagem natural" nas opções de Mouse e Touchpad.
Eliran Malka
fonte
3

Como alternativa ao uso de arquivos de script ou do Ubuntu Tweak, você também pode experimentar o aplicativo chamado "Natural Scrolling", fabricado pelo Zedtux. Virá como um indicador.

Para instalá-lo, a maneira mais fácil é usar um terminal:

sudo apt-add-repository ppa:zedtux/naturalscrolling
sudo apt-get update
sudo apt-get install naturalscrolling
Agmenor
fonte
Eu estou ciente disso. parece, no entanto, falhar na tarefa de alguns aplicativos nativos. além disso, parece redundante instalar um aplicativo (e sobrecarregar o painel com mais um indicador) apenas para esse fim, enquanto um script de quatro linhas pode resolver isso, possivelmente melhor. obrigado pela alternativa de qualquer maneira.
Eliran Malka
1
Interessante que o seu script funcione para qualquer janela! Eu realmente tenho um bug com isso. Vou tentar sua solução.
Agmenor
1

No xfce4 (Xubuntu, Ubuntu Studio, ...) você pode adicionar isso no console:

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