web-dev-qa-db-fra.com

Pourquoi `xwininfo` et` xdotool` donnent-ils des identifiants de fenêtre différents pour la même fenêtre?

Dans un onglet d'un émulateur de terminal (lxterminal) sur Lubuntu 18.04, j'essaie de trouver son identifiant de fenêtre en cliquant au même endroit (où le shell est affiché) à l'intérieur de l'onglet, soit par xwininfo

$ xwininfo -int | grep -Po '(?<=Window id: )[0-9a-zA-Z]+'
31457283

ou par xdotool

$ xdotool selectwindow 
35652689

Pourquoi xwininfo et xdotool me donnent-ils des identifiants de fenêtre différents?

Par conséquent, les différents identifiants de fenêtre mènent à différents identifiants de processus:

$ xdotool getwindowpid 31457283
1480    
$ ps aux | grep -i 1480
t         1480  0.1  0.3 473204 31240 ?        Sl   Nov21  23:18 lxterminal

$ xdotool selectwindow getwindowpid
window 35652689 has no pid associated with it.

Le problème de différents identifiants de fenêtre ne se situe pas seulement dans un onglet de lxterminal, mais également dans un onglet firefox, ou dans une fenêtre de evince. Je n'ai pas trouvé d'application en cliquant dans la fenêtre de laquelle les deux manières donnent le même ID de fenêtre.

4
Tim

Ce sont deux choses différentes.

L'ID de processus est l'identifiant de processus du noyau et est utilisé pour des tâches telles que la suppression du processus, la planification de la tâche, etc.

L'identifiant de la fenêtre est l'identifiant de la fenêtre du serveur Window. Un processus peut générer n’importe quel nombre de Windows et fréquemment, il en génère plusieurs. Pensez au nombre de dialogues que GIMP a en libre accès sur tout l’écran.

Dans ce cas, l'ID de processus ne fait que combiner la question, mais si vous ciblez la même fenêtre que pour une cible unique, vous devriez obtenir le même résultat pour

  • xdotool selectwindow
  • xwininfo -int

Exécutez les deux sur la même ligne, double-cliquez et voyez ce qu'ils disent tous les deux:

xwininfo -int | grep -Po '(?<=Window id: )[0-9a-zA-Z]+'; xdotool selectwindow;

J'ai installé lxterminal et confirmé que tout ce que vous voyez est unique. Je ne peux pas reproduire.

1
Evan Carroll