Comment puis-je désactiver la fonctionnalité «coller le bouton central de la souris» dans tous les programmes?


43

Je n'aime pas que le bouton du milieu de la souris soit collé, car je finis souvent avec un code non compilable dans Eclipse. Comment puis-je désactiver cette option (dans tous les programmes)? Je cours Fedora.


4
Un clic du milieu pour insérer la sélection fait fondamentalement partie du fonctionnement de X11; voir http://www.jwz.org/doc/x-cut-and-paste.html .
éphémère

1
@ Gilles: Dans tous les programmes. :)
derekhh

4
Je n'ai pas vu de moyen trivial de le faire sans supprimer complètement le bouton central de la souris, ni pirater X, ni visser avec le presse-papier normal, aussi ma "solution" proposée consiste-t-elle simplement à apprendre à utiliser correctement le bouton central de la souris. Il est extrêmement pratique de pouvoir surligner une URL de texte n’importe où et d’y accéder en cliquant du milieu dans la fenêtre de mon navigateur (FF).
jw013

4
@ephemient "Le clic du milieu pour insérer la sélection fait fondamentalement partie du mode de fonctionnement de X11" ... il y a bien longtemps, lorsque nous avions des souris optiques Sun Souris qui nécessitaient environ 1 livre de pression sur le bouton du milieu pour obtenir un signal. Aujourd'hui, le bouton du milieu est sur la gâchette, et de plus, il est utilisé comme une molette. Ce "fondamental" doit disparaître (il doit
contenir

3
Je pense que la possibilité de désactiver ce que vous voulez est un aspect encore plus fondamental de Linux.
Wayne Bloss

Réponses:


25

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

Installer xbindkeys xsel xdotool

Placez ceci dans ~/.xbindkeysrc

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

Recharger xbindkeys -p

Exécuter xbindkeysau démarrage, pkill xbindkeyspour arrêter.


7
Merci!!! Je ne peux pas croire que la seule solution qui fonctionne soit une résolution de 0 voix depuis exactement 2 ans.
Retrouvée le

4
Enfin, une solution qui a fonctionné pour moi sur Ubuntu Mate 17.10. Merci!
Dmitry Frank

5
@spiil J'ai essayé cette solution et elle produit l'effet souhaité. J'ai cliqué au milieu dans un champ de texte et rien ne se passe. Un clic sur un lien et un clic sur le milieu pour fermer un onglet fonctionnent dans Chromium, Firefox et Waterfox (les trois navigateurs que j'ai testés).
user7214865


2
Tu es une légende. J'ai utilisé le bouton du milieu de mon trackball à des fins de défilement, mais la fonctionnalité de collage m'a rendue la vie misérable. Maintenant, il est à nouveau dans des couleurs vives, merci!
redsPL

16

Dans Fedora 24, vous pouvez installer gnome-tweak-toolà l’aide de la commande suivante:

$ sudo dnf install gnome-tweak-tool

Ouvrez gnome-tweak-toolet allez dans l'onglet "Clavier et souris" et désactivez le "clic-milieu-coller".


4
Ceci est également disponible dans Ubuntu 16.04: sudo apt-get install gnome-tweak-tool
Tyranin

1
Cela ne concerne que quelques programmes tels que gedit, gnome-terminal et quelques autres. Voir aussi les commentaires sur askubuntu.com/questions/4507/… .
Kvothe

11

Le fait de coller le bouton du milieu est une norme d'interface utilisateur unix, comme si le bouton de gauche était sélectionné ou activé, et que le bouton de droite faisait autre chose (comme étendre, basculer, ouvrir un menu,…). Vous le trouverez lié au collage dans la plupart des applications Unix.

Si votre problème est que votre souris est trop sensible lorsque vous placez votre doigt sur la molette, je suggère d’obtenir une meilleure souris. Il y a beaucoup de souris décentes bon marché.

Vous pouvez réaffecter le bouton 2 de la souris à un autre numéro. Les applications identifient les boutons gauche, central et droit de la souris en tant que boutons 1, 2 et 3 respectivement. Placez ce code dans un script exécuté au démarrage de votre session X (la procédure dépend de votre environnement de bureau).

echo 'pointer = 1 6 3 4 5' | xmodmap -

1
Ne marche pas. pastebin.com/0DYYMDLS
balki

@ balki bizarre. Cela fonctionne certainement pour moi. Donc, pour savoir pourquoi cela ne fonctionne pas pour vous, posez une nouvelle question. Assurez-vous de mentionner votre version de X.org (ou autre serveur X), la distribution sur laquelle vous l'exécutez et les périphériques d'entrée connectés.
Gilles 'SO- arrête d'être méchant'

2
Je parie que l'OP ne se soucie pas de savoir si c'est standard (je sais que je ne le fais pas). Peu importe Les actions du bouton de la souris devraient être plus facilement personnalisables.
Marc.2377

7

Les souris à molette prennent en charge un événement de clic du bouton central lorsque vous appuyez sur la molette. C'est une fonctionnalité intéressante, mais vous pouvez la trouver irritante. 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 Dell Usb a imprimé ici pour laquelle id = 12

alors, je peux voir le mappage de mon bouton de souris comme:

$ xinput get-button-map 12

qui imprime

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

ici, seuls les trois premiers chiffres ont une signification pour moi. Ils représentent les boutons gauche, moyen et droit de la souris.

Je peux désactiver le bouton central de la souris en le réglant sur 0:

$ xinput set-button-map 12 1 0 3

Ou je peux transformer le bouton du milieu de la souris en bouton gauche de la souris en le réglant sur 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)


Fonctionne parfaitement pour le touchpad dans Slackware 14.2 (KDE).
Firelord

C'est un meilleur que les précédents qui commencent par "télécharger XX". Le seul problème que j'ai eu est que pour xinput set-button-map 12 1 0 3vous définir tous les boutons (1 - 12 pour dans cet exampe xinput set-button-map 12 1 0 3 4 5 6 7 8 9 10 11 12)
blindguy

3

Voici ce que vous pouvez faire si vous souhaitez que le clic du milieu reste fonctionnel (pour cliquer pour ouvrir des liens dans de nouveaux onglets, par exemple) sans que cela ne colle.

Commencez par installer sxhkd et xsel .

Puis configurez ./.config/.sxhkd/sxhkdrc comme suit

~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.

Maintenant, démarrez sxhkd (ou configurez-le pour qu'il se lance au démarrage). Maintenant, la souris du milieu ne collera plus rien mais fonctionnera normalement.


Cela vous permet toujours d'utiliser la souris du milieu pour le défilement. Bonne solution! Pour moi, le fichier était~/.config/sxhkd/sxhkdrc
Atnas

1

C'est une convention commune à laquelle de nombreux programmes adhèrent. Il n'y a pas de moyen global de le désactiver, vous devez le faire programme par programme.

EDIT: (bref, comme Gilles dit, désactiver le bouton 2 de la souris. Mais certains programmes ont d’autres utilisations pour le bouton 2 de la souris, je ne le recommanderais donc pas.)


1

EDIT: Je viens de trouver un problème avec la solution que j'ai publiée: dans certains programmes ( gitkdu moins, je ne sais pas à quel point c'est courant), cela empêchera la sélection de texte de fonctionner. Essayez donc, mais si vous rencontrez des problèmes pour sélectionner du texte dans un programme que vous utilisez régulièrement, la solution consiste à cesser de l'utiliser.

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 le configurer pour s’exécuter lors de la connexion), le bouton central de la souris ne collera dans aucune application. Donc techniquement, ça va encore coller, mais il n'y aura toujours rien à coller.

La façon dont cela fonctionne est d’exécuter xselet de copier ( -i) le contenu de /dev/null, sans passer à l’arrière-plan ( -n), et de conserver cette chaîne vide dans la mémoire tampon au lieu de simplement l’effacer et la sortie ( -f). Chaque fois qu'il sort, il invoquera à xselnouveau avec les mêmes options. Puisqu'il xselcontinuera à fonctionner jusqu'à ce qu'un autre programme "le soulage de son devoir" en copiant quelque chose d'autre, il ne créera pas constamment de nouveaux processus, mais maintiendra un processus unique en cours d'exécution jusqu'à ce qu'il soit à nouveau nécessaire. (Sauf si plusieurs instances du script sont en cours d'exécution, vous n'avez pas besoin de le faire.)

De plus, cela n'interférera pas avec le copier / coller classique, car le collage par clic du milieu utilise un presse-papier séparé.


Merci! J'utilise KDE, et cette solution est la seule qui fonctionne pour moi.
Aloso

@Aloso Vous êtes le bienvenu, gardez juste à l'esprit la mise en garde au sommet. Si jamais vous vous trouvez incapable de sélectionner du texte dans un programme, c'est le coupable le plus probable.
Flarn2006

Oui, j'ai remarqué ce problème dans la boîte de dialogue "Enregistrer le fichier" de Firefox. Maintenant, je n'active que ce script, quand je suis en train de programmer.
Aloso

@Aloso Okay alors; Je suis ravi qu'il vous soit
utile

0

Ceci est mon script. Votre a peut-être 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 ---------------------------------------------------------------------------------
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.