Émuler le clic de souris avec un clavier


13

Je veux faire un bouton sur un clavier pour agir comme un clic de souris, de préférence en utilisant xmodmap. Comment fait-on ça?

Exécuter Ubuntu 10.10.


setxkbmap -option keypad:pointerkeysferait ce que vous voulez. Puis un shift-numlock.
peterh

Réponses:


6

Les étapes suivantes vous aideront à recâbler vos touches du clavier aux boutons de la souris.

  1. Identifiez la touche du clavier à l'aide de l' xevutilitaire.

    Exécuter l'utilitaire xev et appuyer sur la touche du clavier à recâbler produira quelque chose comme ceci

    KeyPress event, serial 37, synthetic NO, window 0x3e00001,
    root 0x82, subw 0x0, time 28977858, (-419,294), root:(175,613),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

    Notez le code clé qui sera ré-mappé.

  2. Exécutez l'utilitaire xkbset

    xkbset m

  3. Remapper à l'aide de l'utilitaire xmodmap.

    Dans le cas ci-dessous, la touche de menu est remappée au bouton droit de la souris.

    xmodmap -e "keycode 135 = Pointer_Button3"


voir mon script superuser.com/questions/313926/… Utilisez les touches pour les boutons de la souris sur linux. Alternative à AHK?
Russo

4

J'imagine que vous pourriez accomplir cela en utilisant xmodmap et le keymap Pointer_Button1.

Regardez dans le fichier /usr/include/X11/keysymdef.h pour l'orthographe et la capitalisation exactes, mais il devrait être possible de mapper une touche du clavier dans un bouton de la souris (1,2,3, etc.), même un double-clic ( voir le fichier d'en-tête, près de la ligne 460 environ)

keysym W = Pointer_Button1

PEUT fonctionner, ce qui fait que la touche W agit comme le bouton gauche de la souris. Je recommanderais d'utiliser une clé différente, à moins que vous n'utilisiez aucun W, mais tout ce qui fonctionne pour vous. (non, je ne vais pas l'essayer moi-même, j'ai besoin de mes W!)

Consultez également la page de manuel de xmodmap, et certainement le contenu de /usr/include/X11/keysymdef.h pour obtenir l'orthographe correcte. Supprimez le préfixe XK_ pour utiliser les noms de clés pour xmodmap.

On dirait que c'est (keysymdef.h) dans le paquet x11-proto-core-dev pour mon système Debian ... vous voudrez peut-être rechercher le fichier et son contenu en ligne, vous doutez d'installer tous les fichiers -dev impliqués dans obtenez juste celui-là. GIYF.

Quelque chose me chatouille derrière la tête à propos d'une autre façon de faire ça, mais rien ne me vient en ce moment.

OH! En fonction de vos besoins, vous pouvez vous intéresser à l'émulation clavier-souris, qui transforme le pavé numérique en une souris complète à deux boutons (pas de molette!).


1
Pour plus d'informations sur les lecteurs, à propos de "Emulation clavier souris": en.linuxreviews.org/… La combinaison de touches pour activer cette fonction a été désactivée par défaut depuis un certain temps et a maintenant besoin Option XkbOptions "keypad:pointerkeys". Appuyer sur les touches n'est pas le seul moyen d'activer cela: le xkbset mfait selon crunchbang.org/forums/viewtopic.php?id=27937 , et peut contrôler le délai d'attente désagréable et également le désactiver à partir de la ligne de commande.
imz - Ivan Zakharyaschev

3

Le mode intégré "Emulation clavier souris" peut le faire et / mais possède des combinaisons de touches préconfigurées pour émuler divers clics et pressions de souris (pour les faire glisser).

(Pour info: la combinaison de touches pour l'activer a été supprimée du clavier par défaut depuis longtemps et a maintenant besoin Option XkbOptions "keypad:pointerkeys".)

Appuyer sur une touche n'est pas le seul moyen d'activer ce mode:

xkbset m

le fait conformément à http://crunchbang.org/forums/viewtopic.php?id=27937 , et peut contrôler le délai d'attente désagréable et également le désactiver à partir de la ligne de commande. Pour désactiver le délai d'attente désagréable:

xkbset exp =m

Donc, xkbsetc'est vraiment plus pratique (que d'avoir une touche juste pour activer ce mode), car xkbsetdonne plus de contrôle sur le timeout préféré, etc.

Le pavé numérique est utilisé. Quelques combinaisons de base (plus sur http://en.linuxreviews.org/HOWTO_use_the_numeric_keyboard_keys_as_mouse_in_XOrg :

  • /, *, -Sont pour la sélection de la gauche, le bouton du milieu ou à droite;
  • 5sert à cliquer avec le bouton sélectionné ;
  • 0et .sont pour appuyer et relâcher le bouton sélectionné (pour faire glisser, etc.)

Remarques sur les problèmes d'obtention de l'émulation clavier / souris toujours activée

  1. Je ne pouvais pas toujours activer "Emulation clavier souris". J'ai donc compté sur une touche spéciale (comme dans keypad:pointerkeys) pour ce faire.

  2. J'ai découvert que Xfce dérangeait également ces paramètres au démarrage, donc s'il xkbset mest exécuté avant Xfce, alors le paramètre n'est pas actif. Par conséquent, j'ai dû changer un paramètre dans la configuration Xfce pour correspondre à mon souhait global, à savoir: Paramètres Xfce: Accessibilité: Souris: activer l'émulation . (La source pour moi d'apprendre l'existence d'une telle option Xfce était: https://bugzilla.xfce.org/show_bug.cgi?id=3860 .) Cela semble avoir aidé. (Je désactive également mon pavé tactile avec xinput float ...; cela est gâché en basculant entre les consoles Linux, mais peut être contourné à nouveau en désactivant cet appareil dans les paramètres Xfce au moins.)

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.