Si vous exécutez le script ci-dessous, il enregistre pendant 10 secondes (ou toute autre durée que vous définissez) la sortie de la fonction xprop
dans la fenêtre la plus en avant (en exécutant la commande xprop -root
). Ensuite, il écrit la sortie, une fois le temps écoulé, dans un fichier : outfile.txt
Si vous veillez à conserver le Gnome-Do
active jusqu'à ce que le script soit terminé, vous pouvez être sûr que le dernier enregistrement correspond au Gnome-Do
fenêtre.
Pour l'utiliser
-
Il suffit de copier le script ci-dessous dans un fichier vide, de définir, dans la section head, le chemin d'accès au fichier de sortie ( outfile =
, utiliser un absolu chemin). Sauvegardez-le sous le nom de record_xprop.py
-
Lancez le script par la commande :
python3 /path/to/record_xprop.py
-
Appelez votre Gnome-Do
(ou toute autre application pour laquelle vous avez besoin de données).
-
Une fois le temps écoulé, votre fichier de sortie affichera cinq fois la sortie de l'application xprop -root
séparés par une ligne pointillée.
Note
Si vous avez besoin de plus de temps, changez simplement le "5" dans la ligne :
while t < 5:
en toute autre valeur dont vous avez besoin
Le script
#!/usr/bin/env python3
import subprocess
import time
outfile = "/home/jacob/Bureaublad/outfile.txt"
data = []; t = 0
while t < 5:
data.append(subprocess.check_output(["/bin/bash", "-c", "xprop -root"]).decode("utf-8"))
time.sleep(2)
t = t + 1
with open(outfile, "wt") as out:
for rec in data:
out.write(rec+"\n"+"-"*20+"\n\n")
編集部
Si cela ne fonctionne pas pour une raison quelconque (apparemment, la fenêtre n'est pas au premier plan, comme le reconnaît le système xprop
), nous pourrions faire la même chose avec l'option wmctrl -l
(remplacer xprop -root
par wmctrl -l
dans le script), pour identifier la fenêtre d'abord par son nom.
Une fois que cela est fait, nous pouvons à nouveau lancer l'opération xprop
, avec le -name
pour obtenir les informations nécessaires : xprop -name <windowname>
Pour les deux commandes, vous pouvez exécuter soit la commande sleep
ou, si vous avez besoin de plus de temps, exécutez à nouveau le script.