web-dev-qa-db-fra.com

Faire la souris gaucher et le touchpad droitier

Je vois que je peux configurer la souris et le touchpad dans un seul panneau (Ubuntu 13.10, par défaut, Gnome). Ce qui est dans une certaine mesure. À savoir, je veux avoir le touchpad configuré différemment, puis la souris et ...

Quand une souris (USB) est connectée, je l’utilise normalement pour gaucher. Par conséquent, je commute les boutons sur gaucher. Mais lorsque j'utilise le pavé tactile, je me sens un peu perdu avec ce type de configuration. Par conséquent, je veux l'avoir droitier.

Y a-t-il un moyen d'obtenir ce qui suit: quand je branche une souris (respectivement quand elle est détectée), passe automatiquement à la main gauche et quand je la débranche, passe automatiquement à la main droite?

10
LeO

Je comprends votre frustration, mais ce problème peut être résolu très simplement à l’aide de l’outil xinput.

Commencez par brancher 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 semblable à:

xinput | cat 
 ⎡ Identifiant de pointeur de noyau virtuel = 2 [pointeur principal (3)] 
 ⎜ po Identifiant de pointeur de noyau virtuel XTEST = 4 [pointeur esclave (2)] 
 ↳ SynPS/2 Synaptics TouchPad id = 14 [pointeur esclave (2)] 
 Id ID souris USB = 11 [pointeur esclave (2)] 
 ID clavier central virtuel = 3 [clavier maître (2) ] 
 ...

Dans l'exemple ci-dessus, la souris USB a id=11. Nous allons utiliser ce id dans la commande suivante qui permutera les boutons pour être gaucher 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 le changement, utilisez:

xinput set-button-map  id  1 2 3

Pour effectuer le changement de façon permanente, ajoutez la commande suivante dans Applications de démarrage (recherchez dans . Tiret pour Démarrage Applications):

sh -c "xinput set-button-map  id  3 2 1"

Mise à jour:

Etant donné que l'id peut changer après le redémarrage mais que le nom de la souris USB ne change pas, vous pouvez également rechercher le nom de la souris et l'appliquer. Pour ignorer les détails reg. En choisissant le nom, la solution finale ressemble à ceci:

pour id dans `/ usr/bin/xinput list |/bin/grep ' souris USB ' |/bin/grep -o [0-9] [0-9] `; do xinput set-button-map $ id 3 2 1; terminé;

emballez-le dans les applications de démarrage mentionnées ci-dessus , vous obtiendrez finalement:

sh -c "pour l'id dans`/usr/bin/xinput list |/bin/grep ' Souris USB ' |/bin/grep -o [ 0-9] [0-9] `; do xinput set-button-map $ id 3 2 1; done;"
10
Radu Rădeanu

Il existe un moyen encore plus simple que dans réponse de Radu Rădean . xinput accepte le nom du périphérique d'entrée comme alternative à son ID numérique. Puisque votre souris USB est probablement traitée de façon générique, son nom est probablement USB Mouse. Par conséquent, vous n'avez probablement même pas besoin d'exécuter xinput list.

Ainsi, votre xinput set-button-map, avec ce nom à la place de l'ID numérique, devient:

xinput set-button-map "USB Mouse" 3 2 1

Ceci prend la place de xinput set-button-map id 3 2 1 et devrait permettre d'obtenir le même résultat, avec 3 2 1 en faisant une souris pour gaucher, exactement comme lorsque la méthode identification numérique est utilisée. (Et remplacer 3 2 1 par 1 2 3 fonctionnera toujours pour le changer en souris droitière.)

Cela a pour avantage que, s'il fonctionne initialement, il continuera de fonctionner après les redémarrages, sans avoir à obtenir le numéro d'identification du périphérique à l'aide de longues commandes complexes.

8
reedstrm

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 Applications de démarrage

bash -c "for id in `/usr/bin/xinput list | /bin/grep 'USB Mouse' | /bin/grep -o id=[0-9][0-9]*`; do xinput set-button-map ${id:3} 3 2 1; done;"
1
robbie