[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Capture d'écran avec wmctrl+import



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,  :)
-- 
Étienne Mollier <emollier@emlwks999.eu>
Fingerprint:  8f91 b227 c7d6 f2b1 948c  8236 793c f67e 8f0d 11da
Sent from /dev/pts/2, please excuse my verbosity.

Attachment: signature.asc
Description: PGP signature


Reply to: