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
.