Configuração avançada de rolagem inercial

9

É possível configurar a rolagem inercial sináptica de uma maneira que seja interrompida quando qualquer tecla for pressionada no teclado?

Para explicar esta pergunta: Costumo usar atalhos. Agora, quando estou, por exemplo, navegando na Web e rolando de volta para o topo de um site usando rolagem inercial, amplio o site como um louco se tentar abrir uma nova guia com Ctrl+ Tporque o navegador apenas detecta Ctrl+ scrolling.

Isso acontece em muitas aplicações e é realmente irritante. Eu gostava de rolagem inercial, mas enquanto esse problema persistir, tenho que desativá-lo.

Mouagip
fonte
É Strgo mesmo que Ctrl?
jobin 17/05/19
@ Jim Sim, é o selo alemão. Desculpe, esqueci de mudar.
Mouagip 17/05

Respostas:

5

Receio que isso já tenha sido discutido no Xorg e esteja marcado como "Resolvido corrigido", mas não será corrigido, pois o Xorg não perceberá quando você pressionar Ctrle a rolagem inercial ainda está no lugar. (Veja o comentário de Peter Hutterer e sua analogia com Ctrl).

Portanto, pelo menos até termos o Unity 8 (quando o Xorg é substituído pelo Mir e, esperamos, ver isso realmente resolvido), podemos ter apenas uma palavra ao redor, em vez de uma correção perfeita ou uma rolagem inercial completamente desabilitante.

Uma das correções que eu recomendaria é desativar o recurso Ctrl+ scrollingno próprio aplicativo. Essa certeza é uma solução impura, pois o problema ainda está no lugar, mas apenas o efeito é removido e você teria que fazer isso para qualquer aplicativo que use com mais freqüência a rolagem inercial.

Para desativar o recurso Ctrl+ scrollingno Firefox, digite about:configa barra de endereço e clique em "Terei cuidado, prometo!" Agora, na barra de pesquisa, digite mousewheel.with_control.actione clique duas vezes no primeiro resultado e defina seu valor como 1, o que rolaria apenas o conteúdo em vez de aplicar zoom. Você pode definir seu valor para os seguintes valores com os efeitos correspondentes:

  • 0 (desabilitado)
  • 1 (conteúdo de rolagem)
  • 2 (voltar / avançar na sua história)
  • 3 (padrão, mais / menos zoom)

Atualizarei a resposta se conseguir encontrar uma solução melhor e mais limpa.

jobin
fonte
11
para usuários do Chrome aqui é uma extensão que (na maioria das vezes) lida com a questão
Minner
Para usuários do LXDE / Openbox, aqui está uma pergunta que trata da Alt+ scrolling"loucura de comutação da área de trabalho", que é outro sintoma do mesmo problema subjacente.
10262 tanius
existem notícias sobre este problema?
GLS
2

Costa de canto ajuda! Embora não seja uma solução real, descobri que usar o CornerCoastingmodo do driver Synaptics em vez do modo de rolagem inercial normal (sem o dedo) ajuda. Razão: o modo de inércia da esquina está ativo enquanto mantém o dedo na esquina e para imediatamente ao liberá-lo. Enquanto pressionar Ctrldurante a margem do canto ainda cria o problema "loucura do zoom do Firefox" que você descreve, achei muito improvável que eu o fiz enquanto estou ativamente envolvido em uma ação (por exemplo, com o dedo no touchpad em vez de com a margem do dedo).

Tentando esquiar pela costa. O comando a seguir configurará o modo de inércia de canto:

synclient VertEdgeScroll=1 CornerCoasting=1 CoastingSpeed=1 CoastingFriction=0

VertEdgeScroll=1é porque a margem do canto funciona apenas com a rolagem pela borda, não com a rolagem com dois dedos. Se você gosta da margem do canto nas bordas direita e inferior, adicione HorizEdgeScroll=1a linha acima. CornerCoasting=1ativa o modo de inércia de canto. CoastingSpeedé a velocidade mínima de rolagem durante a inércia, mas essa também parece ser a velocidade mínima do cursor para acioná-la. Então, defino-o no mínimo para facilitar o acionamento do modo, o que mais pode ser complicado (e impossível com algo parecido CoastingSpeed=100). CoastingFrictioné um valor para deixar a rolagem inercial desaparecer. Nós o desativamos aqui para mantê-lo em funcionamento até você levantar o dedo, diferente do que é geralmente desejado no litoral convencional. Para mais detalhes sobre essas opções, consulte a página de manual do Synaptics .

Algo que não foi mencionado na página de manual: a margem do canto é aparentemente ativada passando de uma área de borda que não seja de canto para uma área de canto e mantendo o dedo lá . Portanto, o movimento da curva por inércia é interrompido se você levantar acidentalmente o dedo, por um tempo muito curto, colidindo com a borda do touchpad. O modo de acionamento "mover para uma área de canto" também significa que a margem de canto não funcionará ou será difícil de acionar se você TopEdgeeBottomEdgeparâmetros deixam pouca ou nenhuma área que não seja de canto na borda. Eles são relevantes aqui, pois as áreas de canto são definidas pelas interseções das áreas de aresta. Além disso, sem uma área de borda direita de tamanho acessível, também é difícil ou impossível acionar a margem do canto. Para o meu hardware (ThinkPad X201), achei esses valores funcionados bem (os seus podem ser diferentes, são necessárias algumas experiências):

synclient RightEdge=4800 TopEdge=2000 BottomEdge=4000

Fazendo bastão de esquina. Embora synclientseja ótimo para testar configurações com efeito imediato, elas são perdidas ao reiniciar o X. Para mantê-las, crie um /etc/X11/xorg.conf.d/51-synaptics-cornercoasting.confarquivo de configuração com o mesmo nome, conforme descrito aqui (também funciona no Ubuntu!). Para o caso acima, o conteúdo seria:

Section "InputClass"
    Identifier "Touchpad tweaks"
    Driver "synaptics"
    MatchIsTouchpad "on"
        Option "VertEdgeScroll" "on"
      # Option "HorizEdgeScroll" "on" # Enable if you want this.
        Option "CornerCoasting" "on"
        Option "CoastingSpeed" "1"
        Option "CoastingFriction" "0"

        Option "RightEdge" "4800"
        Option "TopEdge" "2000"
        Option "BottomEdge" "4000"
EndSection

E, em seguida, reinicie o X para ver o efeito, é claro.

tanius
fonte
0

Possíveis substitutos. Se você deseja desativar completamente a rolagem inercial porque o bug é muito irritante, existem alguns substitutos possíveis (não exatamente rolagem inercial, mas modos de rolagem sem esforço que podem ser usados):

No âmbito do sistema:

  • Rolagem sensível no botão Trackpoint. Isso usa um trackpoint do ThinkPad (mas pode ser modificado para outros trackpoints) para rolar enquanto o botão intermediário está pressionado. Isso é chamado de " Rolagem no botão " no libinputdriver e "emulação de roda do mouse" no evdevdriver mais antigo .

    A idéia aqui é que você a define de maneira tão sensível que um pouco de pressão constante percorre rapidamente páginas longas. Para configurar isso, consulte esta pergunta , esp. a resposta do @htorque que funciona melhor com o libinputdriver (o padrão no Ubuntu 17.10).

Especificamente para o Firefox:

  • Extensão de agarrar e arrastar . Isso fornece um tipo de modo de arremesso inercial / arrastamento inercial, bastante semelhante à rolagem inercial com dois dedos. Configure-o para usar o botão esquerdo do mouse, que é o modo mais semelhante à rolagem inerte com dois dedos em um touchpad. Basta usar um dedo com tocar e segurar e depois "jogar a página da web". Isso interfere na seleção do texto, é claro, mas eles têm um botão para desativar a extensão temporariamente.

    A interferência na seleção de texto é irritante, mas configurá-la para qualquer outro botão do mouse em um touchpad torna o uso muito complicado. (Por exemplo, com um clique do meio, que pode ser configurado como um clique com dois dedos no touchpad, seria: toque com dois dedos, toque e segure com dois dedos, levante um dedo e, em seguida, faça o movimento como acima: D )

  • Rolagem automática. Veja esta resposta para saber como configurá-lo. Além disso, configure o toque com dois dedos para criar um clique do meio - apenas com efeito synclient TapButton2=2. Agora, um clique com dois dedos exibirá o elemento de rolagem automática no Firefox e, afastando o ponteiro do mouse, rolará permanentemente nessa direção até um clique. Infelizmente, mover o ponteiro deve ser feito com um dedo. (Ele simplesmente não funciona com dois dedos, mesmo quando a rolagem com dois dedos está desativada.) E não consegui descobrir como inverter a direção de rolagem desse recurso para ser "natural".

tanius
fonte