web-dev-qa-db-fra.com

Comment puis-je désactiver la fonctionnalité "Bouton de souris du milieu de la souris" dans tous les programmes?

Je n'aime pas avoir la pâte du bouton du milieu de la souris, car je me retrouve souvent avec un code inaboutable dans Eclipse. Comment puis-je éteindre cela (dans tous les programmes)? Je couronne Fedora.

50
derekhh

Cette solution fonctionnera globalement et préservera la fonctionnalité du milieu de la souris.

Installer xbindkeys xsel xdotool

Placez cela dans ~/.xbindkeysrc

"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
b:2 + Release

Recharger xbindkeys -p

Run xbindkeys au démarrage, pkill xbindkeys arrêter.

31
Radivarig

Sourire des souris Support un événement de clic à boutez intermédiaire lorsque vous appuyez sur la roue de défilement. C'est une excellente fonctionnalité, mais vous pouvez le trouver irritant. Heureusement, il peut être désactivé.

Tout d'abord, vous devez connaître l'identifiant de la souris, comme ceci:

$ xinput list | grep 'id='

qui imprime quelque chose comme

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜ PixArt Dell MS116 USB Optical Mouse       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=6    [slave  keyboard (3)]
  Video Bus                                 id=7    [slave  keyboard (3)]
  Power Button                              id=8    [slave  keyboard (3)]
  Sleep Button                              id=9    [slave  keyboard (3)]
  Dell KB216 Wired Keyboard                 id=10   [slave  keyboard (3)]
  Dell KB216 Wired Keyboard                 id=11   [slave  keyboard (3)]
  Eee PC WMI hotkeys                        id=13   [slave  keyboard (3)]

Ma souris USB Dell est imprimée ici pour laquelle id = 12

donc, je peux voir la cartographie de mon bouton de souris comme:

$ xinput get-button-map 12

quelles impressions

1 2 3 4 5 6 7 8 9 10 11 12

ici, seuls les trois premiers chiffres ont un sens pour moi. Ils représentent les boutons gauche, milieu et droit de la souris.

Je peux éteindre le bouton du milieu de la souris en le réglant à 0:

$ xinput set-button-map 12 1 0 3

Ou je peux activer le bouton du milieu de la souris dans un bouton gauche de la souris en le réglant à 1:

$ xinput set-button-map 12 1 1 3

réf. Lien https://wiki.ubuntu.com/x/config/input

ça marche pour moi (Kubuntu 18.04 LTS)

10
Suraj Inamdar

Voici ce que vous pouvez faire si vous souhaitez garder le milieu clic fonctionnel (pour cliquer sur pour ouvrir des liens dans les nouveaux onglets, par exemple) sans que cela passe de choses.

Première installation SXHKD et xsel.

Puis configurer ./. Config/sxhkd/sxhkdrc comme si tellement

~button2
    echo -n | xsel -n -i
~control + c
    echo -n | xsel -n -i
~control + shift + c
    echo -n | xsel -n -i
~control + x
    echo -n | xsel -n -i

Et c'est fondamentalement ça.

Démarrez maintenant SXHKD (ou configurez-le pour lancer le démarrage). Maintenant, la souris du milieu ne colliera plus rien mais fonctionnera autrement comme la normale.

2
Cestarian

Edit : Je viens de trouver un problème avec la solution que j'ai affichée: Dans certains programmes (gitk _ au moins, je ne sais pas à quel point il est commun) Cela empêchera la sélection du texte. Alors essayez-le, mais si vous avez des problèmes de sélection de texte dans un programme que vous utilisez régulièrement, la solution consiste à cesser d'utiliser cette option.

Installez xsel, puis exécutez le script shell suivant:

#!/bin/sh
while true; do
    xsel -fin </dev/null
done

Tant que ce script est en cours d'exécution (vous pouvez la définir pour exécuter sur la connexion), le bouton du milieu de la souris ne collera pas dans aucune application. Donc, techniquement, il pâtisera encore, mais il n'y aura pas toujours rien à coller.

La façon dont il fonctionne est qu'il exécute xsel et a copie (-i) le contenu de /dev/null, sans fourrager à l'arrière-plan (-n), et pour tenir réellement cette chaîne vide dans le tampon au lieu de simplement l'effacer et de sortir (-f). Chaque fois qu'il sortira, il sera invoqué xsel à nouveau avec les mêmes options. Étant donné que xsel continuera à courir jusqu'à ce que un autre programme "le soulage" en copiant autre chose, il ne créera pas de nouveaux processus, il ne contient pas de nouveaux processus, à la place d'un seul processus qui fonctionne avec précision jusqu'à ce qu'il soit nécessaire. (Sauf si vous avez plusieurs instances du script fonctionnant, mais il n'est pas nécessaire de le faire.)

Aussi non, cela n'interférera pas avec une copie/pâte régulière, car la pâte de clic de milieu utilise un presse-papiers séparés.

2
flarn2006

C'est une convention commune que de nombreux programmes respectent. Il n'y a pas de moyen global de l'éteindre, vous devez le faire sur une base de programme par programme.

Edit: (à court de, comme le dit Gilles, désactivation du bouton de la souris 2. Mais certains programmes ont d'autres utilisations pour le bouton de la souris 2, donc je ne le recommanderais pas.)

1
wnoise

Ceci est mon script. Vous pourriez avoir besoin de peaufiner

#!/bin/bash 
clear
echo
echo
echo
echo -----Now fixing your scroll button --- -hold onto pants
echo
xinput --list|grep "Virtual core XTEST pointer"
echo ---------------------------------------------------------------------------------
echo


id=$(
xinput --list|grep "Virtual core XTEST pointer" |awk '{
        for(i=1; i<=NF; i++) {
                tmp=match($i, /id=[0-9]+/)
                if(tmp) {
                        print $i
                }
        }
}' $1 |  tr -d '[:alpha:]='
)

echo fixing $id:

xinput set-button-map $id  1 10 2 4 5 6 7 8 9 3

echo
echo
xinput get-button-map $id
echo ---------------------------------------------------------------------------------
0
Max Robbertze