Quiero emular el desplazamiento horizontal cuando uso mi rueda de desplazamiento (vertical) y presiono Shift.
En algunas aplicaciones (Chrom {e, ium}) esto ya funciona, pero estoy buscando una solución genérica para aplicaciones X.
Lo más cerca que llegué hasta ahora es xbindkeys
+ xdotool
.
# ~/.xbindkeysrc
"xdotool click 6"
shift + b:4
"xdotool click 7"
shift + b:5
El problema es que xbindkeys
parece faltar algunos eventos, y ocasionalmente un desplazamiento vertical "pasa". Esto es muy molesto. Parece que xbindkeys
está utilizando algún tipo de encuesta?
Además, no me gusta generar cientos de comandos de shell por segundo.
Tengo una pantalla pequeña y tengo que desplazarme mucho horizontalmente.
¿Cómo puedo lograr el desplazamiento horizontal genérico?
ACTUALIZAR:
Hay otra manera que hace principalmente lo que quiero con xbindkeys
y xmodmap
.
"xmodmap -e 'pointer = 1 2 3 6 7 4 5 8 9 10'"
c:50
"xmodmap -e 'pointer = default'"
release + shift + c:50
Cuando Shiftse mantiene presionado, los botones de puntero 4 y 5 se asignan a 6 y 7. (Los botones 4/5 son de desplazamiento vertical anterior y 6/7 para el desplazamiento horizontal). c:50
Es la Shifttecla izquierda . Al soltar la tecla, se restaura la asignación de puntero predeterminada.
Esto resuelve muy bien el problema de "demasiados eventos". Sin embargo, la tecla Shift ya no funciona como modificador normal. Traté de volver a emitir los Shifteventos de prensa / lanzamiento de xdotool
esta manera:
"xmodmap -e 'pointer = 1 2 3 6 7 4 5 8 9 10'; xdotool keydown Shift_L"
c:50
"xmodmap -e 'pointer = default'; xdotool keyup Shift_L"
release + shift + c:50
De acuerdo con xev
los Shifteventos, pero creo que ya no se reconoce como un modificador. Por ejemplo, presionar Shift+ Ano produciría una mayúscula A
.
~/.xbindkeysrc.scm
. En algún momento falló, pero podría funcionar en su sistema.Respuestas:
Encontré una solución aceptable para mí.
No encontré una manera de usar Shiftni ninguna otra tecla como mi modificador para rotar el eje de la rueda mientras se presiona.
Ahora estoy usando un simple
.xbindkeysrc
con un botón de alternar:El script toggle.sh se ve así:
Esto me permite alternar el comportamiento. Cuando presiono Alt+ X, el eje de la rueda del mouse gira y cuando lo presiono nuevamente, se establece en el valor predeterminado.
Eso debería funcionar por ahora.
Si alguien encuentra una manera de hacerlo Shiftcomo un "modificador" (el eje del mouse gira mientras está presionado), hágamelo saber.
EDITAR: Como Alt+ xes una tecla de acceso rápido comúnmente utilizada, la cambié a:
(Cambié a la configuración de guile, por lo que lo anterior debería estar en un archivo llamado
.xbindkeysrc.scm
)Esto alternará la dirección de la rueda de desplazamiento con Ctrl+ botón derecho del mouse.
fuente
Podrías usar btnx y es la herramienta de configuración gui .
Paquete Ubuntu más reciente y aquí
Después de hacer la detección del botón en su mouse usando btnx-config, simplemente asigne "Desplazarse hacia arriba" junto con un modificador de botón de desplazamiento a cualquier botón x que desee presionar.
fuente
Como se insinuó aquí , instalé imwheel , luego creé
~/.imwheelrc
con el siguiente contenido.Entonces corrí
imwheel -b 45
en la terminal. Lo probé y no he notado los problemas diagonales asociados con el desplazamiento alto y las teclas xbindkeys.NB
-b 45
restringe laimwheel
captura solo de desplazamiento hacia arriba y hacia abajo, evitando que bloquee (p. Ej.) Losxbindkeys
enlaces de los botones del pulgar.Problemas
Sin embargo, hay varios problemas asociados con esto.
Control_L, Up, Control_L|Up
en~/.imwheelrc
, pero esto no funcionó.imwheel
envía eventos de rueda de desplazamiento horizontal a la ventana activa, no a la ventana debajo del cursor del mouse. Esto es contrario al comportamiento predeterminado de la rueda de desplazamiento. Esto también sugiere que la Ctrlsolución en el punto anterior también sería subóptima.imwheel
Parece que ya no está en desarrollo. Se ha quedado atascado en la versión preliminar durante los últimos 10 años (desde 2004).fuente