Bonjour Etienne et le monde libre,
Exact ainsi ça devrait passer.
Ca explique pourquoi "import -window root image.png" fonctionne (la
capture ne se fait que sur la fenêtre principale).
Il faut que j'adapte ton algorithme à ma sauce.
Un truc que je ne comprends pas est que "wmctrl -d" ne me renvoie qu'UN
desktop, alors que j'en attendais 4...
Merci
pierre estrem
Le 12/10/2021 à 22:09, Étienne Mollier a écrit :
Bonjour Pierre,
Pierre ESTREM, on 2021-10-12:
Sous Debian/XFCE je tente de
capturer l'écran d'un bureau qui n'a pas le focus pour le passer à la
moulinette de tesseract.
[…]
import -window "$window" screenshot.png
Et j'obtiens l'erreur :
import: unable to read X window image `0x05600003': Ressource temporairement
non disponible @ error/xwindow.c/XImportImage/5000.
import: missing an image filename `screenshot.png' @
error/import.c/ImportImageCommand/1293.
Où est mon erreur ?
C'est une limitation de "import", le programme ne prend pas en
charge la capture des fenêtres qui ne sont pas rendues à
l'écran. Une manière de contourner ça serait de rapatrier la
fenêtre sur le bureau courant, le temps de la capture, puis de
la renvoyer à son bureau d'origine, une fois que c'est fini.
Aux fautes de frappe près, ça donnerait un script du genre :
#! /bin/sh
# Identification du firefox
window="$(wmctrl -l | grep -i firefox | cut -f1 -d" ")"
orig_desktop="$(wmctrl -l | grep -i firefox | cut -f3 -d" ")"
# Bureau en cours d'utilisation
cur_desktop="$(wmctrl -d | grep ' \+\* DG: ' | cut -f1 -d" ")"
# Transfert du firefox sur le bureau courant
wmctrl -i -r "$window" -t "$cur_desktop"
# Capture de la fenêtre du firefox
import -window "$window" screenshot.png
# Renvoi du firefox à son emplacement d'origine
wmctrl -i -r "$window" -t "$orig_desktop"
# Fin
D'après mes tests, la fenêtre du navigateur ne vole pas le focus
pendant la manœuvre, donc il ne devrait pas y avoir trop
d'interférences de ce côté là. Le script n'est pas encore au
top niveau : si le firefox est iconifié, alors l'import va tout
de même planter, mais je crois que l'option -b de wmctrl
permettrait de faire les ajustements nécessaires, s'il y a
besoin de traiter ce cas de figure plus en détail.
Bonne soirée, :)