Je comprends votre frustration, mais ce problème peut être résolu très simplement à l'aide de l' xinput
outil.
Branchez d'abord votre souris USB, puis exécutez la commande suivante:
xinput list
pour voir le id
de votre souris. La sortie de la commande ci-dessus peut être similaire à:
xinput | chat
⎡ ID du pointeur du noyau virtuel = 2 [pointeur maître (3)]
⎜ ↳ Noyau du pointeur XTEST noyau virtuel = 4 [pointeur esclave (2)]
⎜ ↳ SynPS / 2 Synaptics TouchPad id = 14 [pointeur esclave (2)]
⎜ ↳ ID souris USB = 11 [pointeur esclave (2)]
⎣ ID du clavier virtuel de base = 3 [clavier maître (2)]
...
Dans l'exemple ci-dessus, la souris USB a id=11
. Nous utiliserons ceci id
dans la commande suivante qui permutera les boutons à gauche uniquement pour la souris USB (et non pour le tauchpad):
xinput set-button-map 11 3 2 1
En général:
xinput set-button-map id 3 2 1
Pour annuler la modification, utilisez:
xinput set-button-map id 1 2 3
Pour le changement de façon permanente, ajoutez la commande suivante à des applications de démarrage (recherche Dash pour les applications de démarrage ):
sh -c "xinput set-button-map id 3 2 1"
Mettre à jour:
Étant donné que l' ID peut changer après le redémarrage, mais pas le nom de la souris USB, vous pouvez également rechercher le nom de la souris et l'appliquer. Pour ignorer les détails, rég. choisir le nom de la solution finale ressemble à:
pour id dans la liste `/ usr / bin / xinput | / bin / grep ' USB Mouse ' | / bin / grep -o [0-9] [0-9] `; faire xinput set-button-map $ id 3 2 1; terminé;
emballez-le dans les applications de démarrage mentionnées ci-dessus, vous obtiendrez enfin:
sh -c "pour id dans` / usr / bin / xinput list | / bin / grep ' USB Mouse ' | / bin / grep -o [0-9] [0-9] `; do xinput set-button-map $ id 3 2 1; done; "
sh -c "for id in '/usr/bin/xinput list | /bin/grep 'Razer' | /bin/grep -o [0-9][0-9]'; do xinput set-button-map $id 3 2 1; done;"
et cela fonctionne (peut-être qu'il faut se soucier des bons traits d'union). Thx pour l'astuce.Il y a un moyen encore plus simple que dans la réponse de Radu Rădeanu .
xinput
accepte le nom du périphérique d'entrée comme alternative à son ID numérique. Étant donné que votre souris USB est probablement traitée de manière générique, son nom est très probablementUSB Mouse
. Par conséquent, vous n'avez probablement même pas besoin de courirxinput list
.Ainsi, votre
xinput set-button-map
, avec ce nom à la place de l'ID numérique, devient:Cela remplace et devrait réaliser la même chose, en en faisant une souris pour gaucher, tout comme lorsque la méthode d'identification numérique est utilisée. (Et le remplacer par fonctionnera toujours pour le transformer en une souris pour droitier.)
xinput set-button-map id 3 2 1
3 2 1
3 2 1
1 2 3
Cela a l'avantage que, à condition qu'il fonctionne initialement, il continuera à fonctionner lors des redémarrages, sans avoir à obtenir le numéro d'identification de l'appareil à l'aide de commandes longues et complexes.
la source
xinput list
montre 2 entrées avec le même nom ("2.4G Wireless Keyboard & Mouse") sauf l'une dit "[pointeur esclave (2)]" et l'autre dit "[clavier esclave (3 )] ". Donc, avec votre solution, j'ai cette erreur "Il existe plusieurs appareils nommés" Clavier et souris sans fil 2.4G ".". À l'heure actuelle, j'utilise l'ajout de solution de Radugrep 'slave pointer'
. Je me demande si xinput permet de spécifier en quelque sorte que nous faisons référence à un pointeur sans faire tout cela.J'ai trouvé que la commande de démarrage dans l'autre réponse ne fonctionne que si l'ID est un nombre à deux chiffres. Voici mes modifications qui devraient fonctionner pour les nombres à un et deux chiffres:
Dans les applications de démarrage
la source
Voici une solution plus détaillée qui résout deux problèmes:
xinput list
montre 2 entrées avec le même nom ("2.4G Wireless Keyboard & Mouse") sauf l'une dit "[pointeur esclave (2)]" et l'autre dit "[clavier esclave (3 )] ". Donc, avec la solution @reedstrm, j'ai eu cette erreur "Il y a plusieurs appareils nommés" Clavier et souris sans fil 2.4G ".", Tandis qu'avec la solution @Radu Rădeanu, l'for
itération était sur 2 identifiants, un pour la souris et un pour le clavier, ayant un Message d'erreur "l'appareil n'a pas de boutons" avec le second.la source