web-dev-qa-db-fra.com

Remapper le bouton tactile latéral sur la souris Microsoft Sculpt Comfort

J'ai récemment acheté une souris Microsoft Sculpt Comfort. Elle utilise Bluetooth pour se connecter à mon ordinateur portable et tous les boutons de souris classiques fonctionnent parfaitement sous Linux et Windows 7. Ce qui est différent de cette souris, c’est qu’elle a une fonction spéciale. Windows/Super touche sur le côté qui lance le menu démarrer/lorsque vous appuyez dessus. Il possède également un capteur tactile qui détecte le moment où le bouton latéral est appuyé vers le haut ou le bas et fait vibrer la souris pour confirmer qu'il a été activé.

Bien sûr, dans Windows, il existe un programme qui me permet de changer le comportement des traits et d’éteindre les vibrations.

Sous Linux, xev détecte uniquement une frappe normale lorsque le bouton latéral est enfoncé ou glissé. Xev ne signale aucune pression sur un bouton de la souris.

Ma question est donc la suivante: puis-je changer les touches qui sont envoyées sous Linux?

J'aimerais changer le raccourci clavier de tab à downbackspace à up, (que xev rapporte) à ctrl+alt+left/right pour basculer entre les espaces de travail.

Merci pour toute aide!

12
user223544

Je viens d’en acheter un moi-même et j’ai constaté que les solutions suivantes me convenaient parfaitement.

  1. Ouvrez dconf-editor (Sudo apt-get install dconf-editor s'il n'est pas déjà installé).
  2. Accédez à org -> gnome -> desktop -> wm -> keybindings.
  3. Modifiez la valeur de passer à l’espace de travail bas en

    ['<Control><Alt>Down', '<Primary><Super>Tab', '<Control><Super>Tab']

    et la valeur de switch-to-workspace-up pour

    ['<Control><Alt>Up', '<Primary><Super>BackSpace', '<Control><Super>Backspace']

5

Donc, comme la souris Microsoft Sculpt Comfort n’enregistre pas les appuis sur les boutons de la souris pour les gestes super et glissé, mais plutôt l’enregistrement des appuis sur les touches du clavier, j’ai utilisé les packages 'xautomation' et 'xbindkeys' pour écouter ces appuis et les envoyer. Ctrl+Alt+Right/Left pour basculer entre les espaces de travail. Ce n'est pas une solution idéale, mais cela fonctionne comme 8 fois sur 10.

#Move to left workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Left' 'keyup Control_L' 'keyup Alt_L' 'keyup Left'"
   m:0x4+mod4+m:0x0+c:23
   #Control_L+Super_L+Tab

#Move to right workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Right' 'keyup Control_L' 'keyup Alt_L' 'keyup Right'"
   m:0x4+mod4+m:0x0+c:22
   #Control_L+Super_L+Backspace

Ce script xbindkeys fait en sorte qu'il écoute les pressions sur les touches que les souris glissent vers le haut et glissent vers le bas les gestes envoyés à l'ordinateur. Si elle est détectée, xautomation envoie la séquence de touches standard du bureau de déplacement, control+alt+left/right.

Le geste de glissement vers le haut sur la souris envoie la frappe de left control+leftsuper+backspace. Le geste de glisser vers le bas sur la souris envoie la frappe left control+leftsuper+tab. m: 0x4 + mod4 + m: 0x0 + c22 est la combinaison de code de clé qui est détectée par xbindkeys.

Je vais en découdre un peu plus pour voir si je peux améliorer l'efficacité, mais pour l'instant, le travail est fait. J'espère juste que tab et backspace que les sorties de la souris ne vissent pas avec le travail que je fais.

2
user223544

Je voulais mapper les mêmes boutons pour naviguer dans les onglets de Firefox dans les deux sens. J'utilise xbindkeys et xmacro. Ça marche plutôt bien!

.xbindkeysrc

#Thumb down
"echo 'KeyStrPress Control_L KeyStrPress Tab KeyStrRelease Control_L KeyStrRelease Tab'|xmacroplay :0"
   Control+Mod4+Tab

#Thumb up
"echo 'KeyStrPress Control_L KeyStrPress Shift_L KeyStrPress ISO_Left_Tab KeyStrRelease Control_L KeyStrRelease Shift_L KeyStrRelease ISO_Left_Tab' |xmacroplay :0"
   Control+Mod4+BackSpace
0
user3229974