Quero emular a rolagem horizontal quando usar minha roda de rolagem (vertical) e pressionar Shift.
Em alguns aplicativos (Chrom {e, ium}) isso já funciona, mas estou procurando uma solução genérica para aplicativos X.
O mais próximo que cheguei até agora é xbindkeys
+ xdotool
.
# ~/.xbindkeysrc
"xdotool click 6"
shift + b:4
"xdotool click 7"
shift + b:5
O problema é que xbindkeys
parece perder alguns eventos e, ocasionalmente, um rolo vertical "passa". Isso é muito chato. Parece que xbindkeys
está usando algum tipo de pesquisa?
Também não gosto de gerar centenas de comandos de shell por segundo.
Eu tenho uma tela pequena e tenho que rolar muito horizontalmente.
Como posso obter rolagem horizontal genérica?
ATUALIZAR:
Existe outra maneira de fazer principalmente o que eu quero com xbindkeys
e xmodmap
.
"xmodmap -e 'pointer = 1 2 3 6 7 4 5 8 9 10'"
c:50
"xmodmap -e 'pointer = default'"
release + shift + c:50
Quando Shiftpressionado, os botões apontadores 4 e 5 são mapeados para 6 e 7. (Os botões 4/5 são a rolagem vertical anterior e 6/7 para a rolagem horizontal). c:50
é a Shifttecla esquerda . Na liberação da tecla, o mapeamento padrão do ponteiro é restaurado.
Isso resolve bem o problema "muitos eventos". No entanto, a tecla Shift não funciona mais como modificador normal. Tentei reeditar os Shifteventos de imprensa / comunicado da xdotool
seguinte forma:
"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 acordo com xev
os Shifteventos, mas acho que não é mais reconhecido como um modificador. Por exemplo, pressionar Shift+ Anão produzirá maiúsculas A
.