Configuración avanzada de desplazamiento inercial

9

¿Es posible configurar el desplazamiento de inercia sináptico de manera que se interrumpa cuando se presiona cualquier tecla en el teclado?

Para explicar esta pregunta: a menudo uso atajos. Ahora, por ejemplo, cuando estoy navegando en la Web y me desplazo hacia la parte superior de un sitio web usando el desplazamiento por inercia, hago zoom en el sitio como loco si intento abrir una nueva pestaña con Ctrl+ Tporque el navegador solo detecta Ctrl+ scrolling.

Esto sucede en muchas aplicaciones y es realmente molesto. Me gustaba el desplazamiento por inercia, pero mientras este problema persista, tengo que desactivarlo.

Mouagip
fuente
¿Es Strglo mismo que Ctrl?
trabajo en
@Jobin sí, es la etiqueta alemana. Lo siento, olvidé cambiarlo.
Mouagip

Respuestas:

5

Me temo que esto ya se ha discutido en Xorg y está marcado como "Resuelto fijo", pero no se solucionará ya que Xorg no se dará cuenta cuando presiona Ctrly el desplazamiento inercial todavía está en su lugar. (Ver el comentario de Peter Hutterer y su analogía con Ctrl).

Entonces, al menos hasta que tengamos la Unidad 8 (cuando Xorg sea reemplazado por Mir y esperemos que veamos esto como realmente resuelto), solo podremos tener un wordaround en lugar de una solución perfecta o deshabilitar por completo el desplazamiento inercial.

Una de las soluciones que recomendaría es deshabilitar la función Ctrl+ scrollingen la aplicación misma. Esta es una solución inmunda, ya que el problema todavía está en su lugar, pero solo se elimina el efecto y tendría que hacerlo para cualquier aplicación que use con mayor frecuencia el desplazamiento inercial.

Para deshabilitar la función Ctrl+ scrollingen Firefox, escriba about:configen la barra de direcciones y luego haga clic en "¡Tendré cuidado, lo prometo!" Ahora, en la barra de búsqueda, escriba mousewheel.with_control.actiony haga doble clic en el primer resultado y establezca su valor en 1, que solo desplazaría el contenido en lugar de hacer zoom. Puede establecer su valor en los siguientes valores con los efectos correspondientes:

  • 0 (deshabilitado)
  • 1 (desplazarse por el contenido)
  • 2 (retroceder / avanzar en tu historial)
  • 3 (predeterminado, acercar / alejar)

Actualizaré la respuesta si puedo encontrar una solución más limpia y mejor.

Jobin
fuente
1
para los usuarios de Chrome, aquí hay una extensión que (con mayor frecuencia) maneja el problema
MInner
Para los usuarios de LXDE / Openbox, aquí es una pregunta que se encarga de la Alt+ scrolling"locura cambio de escritorios", que es otro síntoma de la misma cuestión de fondo.
tanius
¿Hay alguna noticia sobre este problema?
glS
2

¡El deslizamiento de esquina ayuda! Si bien no es una solución real, descubrí que el uso del CornerCoastingmodo del controlador Synaptics en lugar del modo de desplazamiento inercial normal (sin dedos) ayuda. Motivo: el modo de inercia en la esquina está activo mientras se mantiene el dedo en la esquina y se detiene inmediatamente al soltarlo. Si bien presionar Ctrldurante el deslizamiento de esquina sigue creando el problema de "locura de zoom de Firefox" que usted describe, descubrí que es muy poco probable que lo haga mientras estoy involucrado activamente en una acción (es decir, con el dedo en el panel táctil en lugar de deslizar el dedo).

Intentando esquiar en la esquina. El siguiente comando configurará el modo de inercia en la esquina:

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

VertEdgeScroll=1es porque el deslizamiento de esquina solo funciona con desplazamiento de borde, no con desplazamiento de dos dedos. Si le gusta el desplazamiento de esquina en los bordes derecho e inferior, agréguelo HorizEdgeScroll=1a la línea anterior. CornerCoasting=1habilita el modo de inercia de esquina. CoastingSpeedes la velocidad mínima de desplazamiento durante el desplazamiento por inercia, pero también parece ser la velocidad mínima del cursor para activarlo. Así que lo configuré al mínimo para que sea más fácil activar el modo, que de lo contrario puede ser complicado (e imposible con algo así CoastingSpeed=100). CoastingFrictiones un valor para dejar que el desplazamiento inercial se desvanezca. Lo deshabilitamos aquí para que continúe hasta que levante el dedo, diferente de lo que generalmente se desea en el deslizamiento convencional sin dedos. Para obtener más detalles sobre estas opciones, consulte la página de manual de Synaptics .

Algo que no se menciona en la página de manual: aparentemente el deslizamiento de esquina se habilita al deslizar desde un área de borde que no es de esquina a un área de esquina, y luego mantener el dedo allí . Por lo tanto, el movimiento de inercia en la esquina se detiene si accidentalmente levanta el dedo, incluso por un tiempo muy corto, al toparse con / sobre el borde del panel táctil. El modo de activación "moverse a un área de la esquina" también significa que el deslizamiento de esquina no funcionará o será difícil de activar si su TopEdgeyBottomEdgelos parámetros dejan poca o ninguna área sin esquina en el borde. Aquí son relevantes ya que las áreas de las esquinas están definidas por las intersecciones de las áreas de borde. Además, sin un área de borde derecho de tamaño accesible, también será difícil o imposible activar el deslizamiento de la esquina. Para mi hardware (ThinkPad X201), encontré que estos valores funcionan bien (los suyos pueden ser diferentes, requiere algo de experimentación):

synclient RightEdge=4800 TopEdge=2000 BottomEdge=4000

Haciendo que la esquina se pegue. Si bien synclientes excelente para probar configuraciones con efecto inmediato, se pierden al reiniciar X. Para que se mantengan, cree un /etc/X11/xorg.conf.d/51-synaptics-cornercoasting.confarchivo de configuración con un nombre similar como se describe aquí (¡también funciona en Ubuntu!). Para el caso anterior, el contenido sería:

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

Y luego reinicie X para ver el efecto, por supuesto.

Tanius
fuente
0

Posibles sustitutos. Si desea deshabilitar el desplazamiento por inercia por completo porque el error es demasiado molesto, hay algunos sustitutos posibles (no exactamente el desplazamiento por inercia, sino modos de desplazamiento sin esfuerzo similares que se pueden usar en su lugar):

Todo el sistema:

  • Desplazamiento sensible del botón de Trackpoint. Esto utiliza un punto de seguimiento ThinkPad (pero se puede modificar para otros puntos de seguimiento) para desplazarse mientras se presiona el botón del mouse del medio. Esto se llama " Desplazamiento en el botón " en el libinputcontrolador y "emulación de la rueda del mouse" en el evdevcontrolador anterior .

    La idea aquí es que lo configuras de manera tan sensible que un poco de presión constante se desplazará rápidamente por páginas largas. Para configurar esto, consulte esta pregunta , especialmente. la respuesta de @htorque que funciona mejor con el libinputcontrolador (el valor predeterminado a partir de Ubuntu 17.10).

Específicamente para Firefox:

  • Extensión de agarrar y arrastrar . Esto proporciona un tipo de lanzamiento inercial / modo de arrastre inercial, bastante similar al desplazamiento inercial con dos dedos. Configúrelo para usar el botón izquierdo del mouse, que es el modo más similar al desplazamiento inerte de dos dedos en un panel táctil. Simplemente use un dedo con tocar y mantener y luego "lanzar la página web". Esto interfiere con la selección de texto, por supuesto, pero tienen un botón para deshabilitar la extensión temporalmente.

    La interferencia de selección de texto es molesta, pero configurarla para cualquier otro botón del mouse en un panel táctil hace que el uso sea muy complicado. (Por ejemplo, con un clic central, que se puede configurar como un clic de dos dedos en el panel táctil, sería: tocar con dos dedos, tocar y mantener con dos dedos, levantar un dedo y luego lanzar el movimiento como se indica arriba: D )

  • Autoscrolling. Vea esta respuesta para saber cómo configurarlo. Además, configure el punteo con dos dedos para crear un clic central, en efecto solo synclient TapButton2=2. Ahora, un clic con dos dedos mostrará el elemento de desplazamiento automático en Firefox, y al colocar el puntero del mouse alejado de él, se desplazará permanentemente en esa dirección hasta que haga clic. Lamentablemente, mover el puntero debe hacerse con un dedo. (Simplemente no funciona con dos dedos, incluso cuando el desplazamiento de dos dedos está desactivado). Y no pude encontrar cómo invertir la dirección de desplazamiento de esta función para que sea "natural".

Tanius
fuente