GNU/Linux >> Tutoriels Linux >  >> Linux

Manipuler les saisies de la touche X et du pointeur sur la ligne de commande ?

Quels outils de ligne de commande existent pour répertorier et gérer les captures de serveur X ? (C'est une saisie comme dans les saisies de touches et de pointeurs, c'est-à-dire restreindre l'utilisation d'une touche ou d'un bouton de souris particulier à une application particulière, ou restreindre le pointeur de la souris pour qu'il reste dans une zone d'écran particulière.) Je recherche un hypothétique xgrab utilitaire qui montrerait des choses comme

Key     0x00f00ba5  0x123   0
Button  0x00f00ba5  2       
Pointer 0x00abcdef  

ce qui signifie qu'il y a eu un appel à XGrabKey(display, 0x123, 0, 0x00f00ba5, ...) et ainsi de suite avec XGrabButton , XGrabPointer , XGrabKeyboard , XGrabServer (si possible). Le format d'affichage n'a pas d'importance, ce que je veux, c'est un moyen de voir qui saisit quoi, et éventuellement un moyen de révoquer ces saisies (si c'est possible, je ne sais pas si l'API X11 le permet).

Réponse acceptée :

Les versions récentes de X (serveur X.org ≥1.11) prennent en charge plusieurs keysyms de débogage, introduits dans ce commit. Lorsqu'ils sont déclenchés, ils effectuent des actions liées aux saisies.

Par défaut (du moins dans les versions récentes), ceux-ci sont désactivés (absents du keymap par défaut).

Cependant, si vous avez xdotool installé, il est possible de les appeler, en exécutant en ligne de commande :

xdotool key NameOfKey

NameOfKey est le keysym que vous voulez activer. Par exemple, pour imprimer une liste des captures actives dans le journal du serveur X, utilisez xdotool key XF86LogGrabInfo .

Les keyyms pertinents sont :

  • XF86LogGrabInfo :imprime une liste des saisies actives dans le journal du serveur X
  • XF86Ungrab :interrompt tous les grabs actifs, sans tuer l'application qui détient les grabs
  • XF86ClearGrab :tue tous les processus qui détiennent des captures actives

Notez que XF86LogGrabInfo répertorie uniquement les saisies actives, pas les saisies passives telles qu'une saisie sur une touche qui n'est pas actuellement enfoncée. Si vous souhaitez obtenir des informations sur un grab passif, vous devez activer le grab :exécutez xdotool key XF86LogGrabInfo pendant que la combinaison d'accord clé ou de bouton de la souris qui vous intéresse est enfoncée. Faites quelque chose comme :

  1. Exécutez sleep 1; xdotool key XF86LogGrabInfo
  2. En 1 seconde, appuyez sur l'accord de touche ou la combinaison de boutons de la souris.
  3. Après 1 seconde, relâchez la touche/le bouton.
  4. Vérifiez les informations "Active grab …" dans le journal du serveur X (souvent /var/log/Xorg.0.log ).

Linux
  1. Soyez trié avec sort en ligne de commande

  2. Copiez et collez sur la ligne de commande Linux avec xclip

  3. Utilisation de la force sur la ligne de commande Linux

  4. Avoir une vache à la ligne de commande Linux

  5. Enfermez-vous sur la ligne de commande Linux

Maîtrisez la ligne de commande Linux

Comment arrêter Debian 10 à partir de la ligne de commande et de l'interface graphique

Manipuler du texte en ligne de commande avec grep

Trouver la ligne de commande ?

Recherche des fichiers et dossiers les plus volumineux dans la ligne de commande Linux

MySQL la ligne de commande et les pagers