11 votes

Faire en sorte que la souris soit gauchère et le pavé tactile droitier

Je vois que je peux configurer la souris et le pavé tactile dans un seul panneau (Ubuntu 13.10, defaults, Gnome). Ce qui est le cas jusqu'à un certain point. En effet, je souhaite que le touchpad soit configuré différemment de la souris et de la ...

Lorsque je dispose d'une souris (USB), je l'utilise normalement de la main gauche. C'est pourquoi j'utilise les boutons pour les gauchers. Mais lorsque j'utilise le pavé tactile, je me sens un peu perdu avec ce type de configuration. C'est pourquoi je veux qu'il soit utilisé par un droitier.

Existe-t-il un moyen de réaliser ce qui suit : lorsque je branche une souris (respectivement lorsqu'elle est détectée), elle passe automatiquement en mode gaucher et lorsque je la débranche, elle passe automatiquement en mode droitier ?

10voto

Radu Rădeanu Points 156862

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

Branchez d'abord votre souris USB, puis exécutez la commande suivante :

xinput list

pour voir les id de votre souris. La sortie de la commande ci-dessus peut être similaire à :

xinput | cat
 Virtual core pointer                      id=2    \[master pointer  (3)\]
    Virtual core XTEST pointer                id=4    \[slave  pointer  (2)\]
    SynPS/2 Synaptics TouchPad                id=14   \[slave  pointer  (2)\]
    USB Mouse                                 id=11   \[slave  pointer  (2)\]
 Virtual core keyboard                     id=3    \[master keyboard (2)\]
    ...

Dans l'exemple ci-dessus, la souris USB a id=11 . Nous utiliserons cette id dans la commande suivante qui permutera les boutons pour être gaucher uniquement pour la souris USB (et non pour le pavé tactile) :

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 rendre la modification permanente, ajoutez la commande suivante à l'adresse Applications de démarrage (recherche dans Tiret para Applications de démarrage ) :

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

Mise à jour :

Depuis l'entrée en vigueur de la 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 dans le fichier grep et l'appliquer. Pour passer les détails concernant le choix du nom, la solution finale ressemble à ceci :

for id in \`/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;

l'emballer dans l'emballage susmentionné Applications de démarrage vous obtiendrez enfin :

sh -c "for id in \`/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;"

9voto

reedstrm Points 190

Il existe un moyen encore plus simple qu'en Réponse de Radu Radeanu . xinput accepte le nom du périphérique d'entrée à la place de son identifiant numérique. Étant donné que votre souris USB est probablement traitée de manière générique, son nom est très probablement USB Mouse . Par conséquent, il n'est probablement pas nécessaire d'exécuter le programme xinput list .

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

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

Il s'agit de la place de xinput set-button-map _id_ 3 2 1 et devrait aboutir à la même chose, avec 3 2 1 ce qui en fait une souris pour gauchers, tout comme lorsque le voie d'identification numérique est utilisé. (Et le remplacement des 3 2 1 con 1 2 3 fonctionnera toujours pour la transformer en souris pour droitier).

L'avantage est que, si le système fonctionne au départ, il continuera à fonctionner lors des redémarrages, sans qu'il soit nécessaire d'obtenir le numéro d'identification de l'appareil à l'aide de commandes longues et complexes.

1voto

robbie Points 21

J'ai constaté que la commande de démarrage mentionnée dans l'autre réponse ne fonctionne que si l'identifiant est un nombre à deux chiffres. Voici mes modifications qui devraient fonctionner pour les numéros à un ou deux chiffres :

En 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;"

0voto

Charles Collis Points 211
device_id=$(/usr/bin/xinput list \
            | /bin/grep 'slave  pointer' \
            | /bin/grep 'Wireless Keyboard&Mouse' \
            | tr " " "\n" \
            | /bin/grep "id=" \
            | /bin/grep -o [0-9][0-9]* \
        )
/usr/bin/xinput set-button-map $device_id 3 2 1 

Voici une solution plus verbeuse qui résout deux problèmes :

  • Cela fonctionne pour les identifiants d'appareils avec n'importe quel nombre de chiffres (même solution que celle de @robbie, mais écrite un peu différemment).
  • Tient compte du fait que le nom de l'appareil peut être dupliqué. Dans mon cas, j'ai une souris et un clavier sans fil, donc xinput list montre 2 entrées avec le même nom ("2.4G Wireless Keyboard&Mouse") sauf que l'une dit "[slave pointer (2)]" et l'autre "[slave keyboard (3)]". Donc avec la solution de @reedstrm j'avais cette erreur "There are multiple devices named '2.4G Wireless Keyboard&Mouse'", alors qu'avec la solution de @Radu Radeanu, l'erreur "There are multiple devices named '2.4G Wireless Keyboard&Mouse'. for itère sur 2 identifiants, un pour la souris et un pour le clavier, avec un message d'erreur "device has no buttons" avec le second.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X