Je veux émuler le défilement horizontal lorsque j'utilise ma molette de défilement (verticale) et que j'appuie sur Shift.
Dans certaines applications (Chrom {e, ium}), cela fonctionne déjà, mais je cherche une solution générique pour les applications X.
Le plus proche que j'ai obtenu jusqu'à présent est xbindkeys
+ xdotool
.
# ~/.xbindkeysrc
"xdotool click 6"
shift + b:4
"xdotool click 7"
shift + b:5
Le problème est qu'il xbindkeys
semble manquer certains événements, et parfois un défilement vertical "passe". C'est très ennuyeux. Il semble xbindkeys
utiliser une sorte de sondage?
Je n'aime pas non plus générer des centaines de commandes shell par seconde.
J'ai un petit écran et je dois beaucoup faire défiler horizontalement.
Comment réaliser un défilement horizontal générique?
MISE À JOUR:
Il y a une autre façon qui fait surtout ce que je veux avec xbindkeys
et xmodmap
.
"xmodmap -e 'pointer = 1 2 3 6 7 4 5 8 9 10'"
c:50
"xmodmap -e 'pointer = default'"
release + shift + c:50
Lorsque Shiftest maintenu enfoncé, les boutons de pointeur 4 et 5 sont mappés sur 6 et 7. (Les boutons 4/5 sont pour le défilement vertical et 6/7 pour le défilement horizontal). c:50
est la Shifttouche gauche . Lors de la libération de la touche, le mappage du pointeur par défaut est restauré.
Cela résout bien le problème des «trop d'événements». Cependant, la touche Maj ne fonctionne plus comme modificateur normal. J'ai essayé de ré-émettre les Shiftévénements de presse / communiqué avec xdotool
comme ceci:
"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
Selon xev
les Shiftévénements, je pense que ce n'est plus reconnu comme un modificateur. Par exemple, appuyer sur Shift+ Ane produira pas de majuscule A
.
~/.xbindkeysrc.scm
. À un moment donné, il a échoué, mais cela pourrait fonctionner sur votre système.Réponses:
J'ai trouvé une solution acceptable pour moi.
Je n'ai pas trouvé de moyen d'utiliser Shiftou toute autre touche comme modificateur pour faire pivoter l'axe de la roue tant qu'il est enfoncé.
J'utilise maintenant un simple
.xbindkeysrc
avec un bouton à bascule:Le script toggle.sh ressemble à ceci:
Cela me permet de basculer le comportement. Lorsque j'appuie sur Alt+ X, l'axe de la molette de la souris tourne et lorsque j'appuie à nouveau, il est réglé sur la valeur par défaut.
Cela devrait fonctionner pour l'instant.
Si quelqu'un trouve un moyen de le faire avec Shiftun "modificateur" (l'axe de la souris tourne tant qu'il est enfoncé), faites-le moi savoir.
EDIT: Comme Alt+ xest un raccourci clavier couramment utilisé, je l'ai changé en:
(Je suis passé à la configuration guile donc ce qui précède devrait être dans un fichier nommé
.xbindkeysrc.scm
)Cela fera basculer la direction de la molette de défilement avec Ctrlle bouton droit de la souris.
la source
Vous pouvez utiliser btnx et son outil de configuration gui .
Package Ubuntu plus récent et ici
Après avoir fait la détection de bouton sur votre souris en utilisant btnx-config, mappez simplement "Scroll Up" avec un modificateur de bouton shift sur le bouton x que vous souhaitez.
la source
Comme indiqué ici , j'ai installé imwheel , puis créé
~/.imwheelrc
avec le contenu suivant.J'ai ensuite couru
imwheel -b 45
dans le terminal. J'ai testé et je n'ai pas remarqué les problèmes diagonaux associés au défilement élevé et aux xbindkeys.NB se
-b 45
limiteimwheel
à capturer uniquement le défilement vers le haut et vers le bas, l'empêchant de bloquer (par exemple) lesxbindkeys
liaisons pour les boutons du pouce.Problèmes
Cependant, plusieurs problèmes y sont associés.
Control_L, Up, Control_L|Up
dans~/.imwheelrc
, mais cela ne fonctionne pas.imwheel
envoie les événements de la molette de défilement horizontale à la fenêtre active, pas à la fenêtre sous le curseur de la souris. Ceci est contraire au comportement par défaut de la molette de défilement. Cela suggère également que la Ctrlsolution de contournement dans le point ci-dessus serait également sous-optimale.imwheel
semble ne plus être en développement. Il est bloqué sur la version préliminaire depuis 10 ans (depuis 2004).la source