Faites défiler les mouvements de la souris lorsque le bouton du milieu est maintenu enfoncé


29

Sous Windows, je suis habitué à cliquer sur le bouton central et à proposer une option de "défilement rapide" vers le haut ou vers le bas. Comment puis-je obtenir ce comportement sous Linux? Il semble actuellement utiliser à la place le bouton de retour lors d'un clic central.

J'utilise Gnome sous CentOS.


Qu'est-ce qui, spécifiquement, ne fonctionne pas? Les souris Unix avaient trois boutons dès le premier jour, donc le bouton central de la souris fonctionne normalement hors de la boîte.
Gilles 'SO- arrête d'être méchant'

Je suis habitué à cliquer sur le bouton central et à proposer une option de "défilement rapide" vers le haut ou vers le bas. Il semble actuellement utiliser à la place le bouton de retour lors d'un clic central.
some1

2
Ah, vous voulez donc le comportement Windows du bouton central (ou plutôt d'appuyer sur la molette), au lieu du comportement Unix (où le bouton central colle normalement le contenu du presse-papiers). Vous devez vraiment le dire dans votre question, nous ne pouvons pas lire dans vos pensées! Cela nécessite le support des applications; quelles applications utilisez-vous? Quel environnement de bureau (par exemple Gnome, KDE, XFCE,…)?
Gilles 'SO- arrête d'être méchant'

Eh bien, je pensais qu'il y aurait un panneau de configuration quelque part où je pourrais régler cela, mais je ne pouvais même pas aller aussi loin. Le bureau est Gnome, je suppose, est-ce par défaut? Et le problème est dans Firefox.
some1

1
Pour Firefox, il existe une solution à une question presque en double .
Gilles 'SO- arrête d'être méchant'

Réponses:


26

Cette fonctionnalité Windows n'a jamais vraiment fait son chemin dans le monde Unix. Dans le monde Unix, l'objectif principal du bouton central de la souris est de coller le contenu du presse-papiers (ou plus précisément, le texte sélectionné avec la souris, qui est automatiquement copié). Quelques applications multiplates-formes telles que Firefox et Chrome qui prennent en charge le bouton central de la souris de style Linux sous Windows et vice versa, mais à part cela, la plupart des applications ne prennent pas en charge ce type de défilement à grain fin.

Néanmoins, vous pouvez vous rapprocher assez au niveau du système. Il est possible de configurer un bouton de la souris de telle sorte que lorsqu'il est enfoncé, les mouvements de la souris se transforment en événements de roue. Il s'agit de la même fonctionnalité que celle à laquelle vous êtes habitué, mais vous trouverez probablement le mouvement saccadé, car les applications reçoivent des événements de roue, qui sont généralement interprétés comme faisant défiler une ligne ou une colonne entière.

Pour jouer avec cette configuration, utilisez le programme xinput (je ne sais pas s'il y a une interface graphique pour cela). Tout d'abord, exécutez la commande suivante pour voir le nom de votre périphérique de pointage:

$ xinput --list       
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Generic USB Mouse                         id=8    [slave  pointer  (2)]
⎜   ↳ Macintosh mouse button emulation          id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳   USB Keyboard                            id=9    [slave  keyboard (3)]

Par exemple, dans la sortie ci-dessus, le périphérique pointeur est Generic USB mouse. Vous pouvez exécuter la commande suivante pour répertorier les propriétés pouvant être optimisées:

xinput --list-props 'Generic USB Mouse'

L'ensemble des propriétés que vous recherchez sont celles de «l'Emulation de roue Evdev». Avec les paramètres suivants, lorsque vous appuyez sur le bouton central de la souris (bouton 2), le déplacement de la souris envoie des événements de molette (4 = haut, 5 = bas, 6 = gauche, 7 = droite).

xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation' 1
xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Button' 2
xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Axes' 6 7 4 5

Vous voudrez peut-être modifier d'autres paramètres (inertie, timeout).

Vous pouvez mettre ces commandes dans un script. Ajoutez #!/bin/shla toute première ligne et rendez le fichier de script exécutable (par exemple chmod +x ~/bin/activate-wheel-emulation.sh). Ajoutez ensuite ce script à la liste des commandes à exécuter au démarrage de votre session ( gnome-session-propertiesvous permet de le configurer).

Si vous avez un accès root et que vous souhaitez effectuer la modification pour tous les utilisateurs (acceptable sur une machine domestique), il est plus simple de le faire via le fichier de configuration du serveur X.org . En tant que root, créez un fichier appelé /etc/X11/xorg.conf.d/wheel-emulation.confcontenant les paramètres du pilote de la souris . Les paramètres sont les mêmes mais ils sont organisés un peu différemment.

Section "InputClass"
    Identifier "Wheel Emulation"
    MatchProduct "Generic USB Mouse"
    Option "EmulateWheel" "on"
    Option "EmulateWheelButton" "2"
    Option "XAxisMapping" "6 7"
    Option "YAxisMapping" "4 5"
EndSection

Vous devrez faire preuve de prudence lors de l'ajustement des autres paramètres. Si vous réduisez Evdev Wheel Emulation Timeouttrop le paramètre, vous risquez de perdre complètement la fonctionnalité du bouton central (clic) de la souris. Par exemple, si vous réduisez Evdev Wheel Emulation Timeouten dessous de la valeur de, Evdev Middle Button Timeoutvous ne générerez plus d'événements de clic du bouton central. D'après
mon

xinput --set-prop 'Generic USB Mouse' 'Evdev Middle Button Emulation' 1. xinput --set-prop 'Generic USB Mouse' 'Evdev Middle Button Timeout' 50. xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Timeout' 100. Cela fournit une fonctionnalité de clic et de défilement raisonnablement rapide, bien que si vous trouvez qu'elle se déclenche trop rapidement, essayez d'augmenter Evdev Wheel Emulation Timeout(je pense que 200 est la valeur par défaut)
agnussmcferguss

Gilles, je pense qu'il y a quelque chose qui ne va pas dans votre fichier de configuration xorg.conf.d suggéré. Quand je l'ai utilisé, mon X.Org a démarré sur un écran noir. J'ai dérivé une version qui fonctionne en ajoutant Device "evdev"et en plaçant des guillemets autour de la "EmulateWheelButton"valeur de "2". (Toutes mes excuses, je n'ai pas le temps de vérifier si l'un ou les deux de ces changements
corrigent

@Arkanon Les guillemets manquants sont définitivement une erreur de syntaxe. Je ne pense pas que cela Device "evdev"puisse avoir un sens, tu voulais dire Driver "evdev"? Je pense que ce serait une alternative à la MatchProductdirective qui définit les options pour tous les périphériques d'entrée plutôt que pour les souris USB génériques.
Gilles 'SO- arrête d'être méchant'

1
@Wallacoloo Je ne sais pas si vous pouvez obtenir cet effet exact, mais vous pouvez demander au clavier numérique de déplacer la souris en tapant Pointer_EnableKeys(google it ou poser une nouvelle question ici), et vous pouvez configurer un comportement plus sophistiqué avec XKB (search keybord : mousekeys, ou posez une nouvelle question ici décrivant exactement ce que vous voulez et ce que vous allez régler si vous ne pouvez pas l'avoir exactement).
Gilles 'SO- arrête d'être méchant'

25

Il s'avère que cela peut être fait via les préférences de Firefox.

  1. Dans le menu déroulant: Edition -> Préférences
  2. Sélectionnez ensuite les onglets: Avancé -> général
  3. Cochez ensuite "Utiliser le défilement automatique"

Capture d'écran

   ss


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.