Re: Capture d'écran avec wmctrl+import

2021-10-13 Par sujet Étienne Mollier
Bonsoir Pierre,

Pierre ESTREM, on 2021-10-13:
> 'wmctrl -d -v" me renvoie :
> 
> envir_utf8: 1
> WM provides _NET_DESKTOP_GEOMETRY value common for all desktops.
> WM provides _NET_DESKTOP_VIEWPORT value only for the current desktop.
> WM provides _NET_WORKAREA value only for the current desktop.
> Total number of desktops: 1
> Current desktop ID (counted from zero): 0
> 0  * DG: 7680x1080  VP: 3840,0  WA: 0,35 1920x1008  Espace de travail 1
> 
> Ca fait 1 (un) bureau/desktop ?

Les bureaux ont l'air d'être bien présents sous une forme
différente de ce à quoi je m'attendais : wmctrl rapporte une
largeur de bureau de 7680 pixels, ce qui correspond exactement à
quatre fois la largeur de l'espace de travail de 1920 pixels.
Je n'ai pas la moindre idée de ce qui peut provoquer ce
comportement pour le moment, et je n'arrive pas à le reproduire.
Potentiellement, dans ce genre de situation, les fenêtres
pourraient être stockées à des coordonnées en dehors de la zone
d'affichage, mais c'est juste une conjecture.

> Pourtant je passe de l'un à l'autre normalement sauf dans certains cas où je
> n'en ai plus qu'un et alors c'est la catastrophe...
> Si quelqu'un a cela parfois expliquez-moi svp (alors un ALT+F4 n'a aucune
> action mais renvoie ";3s").

Par défaut, le raccourci Alt+Suppr supprime un espace de
travail, et Alt+Inser permet d'en reconstruire un, mais il ne
remet pas les fenêtres à leur place après qu'elles aient été
bougées par inadvertance.  Il m'est déjà arrivé de me prendre
les pieds dans le tapis avec ce raccourci.

Bonne soirée,
-- 
Étienne Mollier 
Fingerprint:  8f91 b227 c7d6 f2b1 948c  8236 793c f67e 8f0d 11da
Sent from /dev/pts/1, please excuse my verbosity.


signature.asc
Description: PGP signature


Re: Capture d'écran avec wmctrl+import

2021-10-13 Par sujet Étienne Mollier
Bonjour Pierre,

Pierre ESTREM, on 2021-10-13:
> Un truc que je ne comprends pas est que "wmctrl -d" ne me renvoie qu'UN
> desktop, alors que j'en attendais 4...

Bizarre, avec la configuration par défaut de xfce4 de Debian 11,
j'ai bien quatre espaces de travail de mon côté :

$ wmctrl -d | wc -l
4

Peut-être que la configuration par défaut a été retouchée ?
Peut-être que le mode verbeux en dira plus sur la configuration
des bureaux :

$ wmctrl -v -d

Bonne soirée,
-- 
Étienne Mollier 
Fingerprint:  8f91 b227 c7d6 f2b1 948c  8236 793c f67e 8f0d 11da
Sent from /dev/pts/4, please excuse my verbosity.


signature.asc
Description: PGP signature


Re: Capture d'écran avec wmctrl+import

2021-10-13 Par sujet Pierre ESTREM

Bonsoir Etienne et le monde libre,

'wmctrl -d -v" me renvoie :

envir_utf8: 1
WM provides _NET_DESKTOP_GEOMETRY value common for all desktops.
WM provides _NET_DESKTOP_VIEWPORT value only for the current desktop.
WM provides _NET_WORKAREA value only for the current desktop.
Total number of desktops: 1
Current desktop ID (counted from zero): 0
0  * DG: 7680x1080  VP: 3840,0  WA: 0,35 1920x1008  Espace de travail 1

Ca fait 1 (un) bureau/desktop ?

Pourtant je passe de l'un à l'autre normalement sauf dans certains cas 
où je n'en ai plus qu'un et alors c'est la catastrophe...
Si quelqu'un a cela parfois expliquez-moi svp (alors un ALT+F4 n'a 
aucune action mais renvoie ";3s").


pierre estrem


Le 13/10/2021 à 20:16, Étienne Mollier a écrit :

Bonjour Pierre,

Pierre ESTREM, on 2021-10-13:

Un truc que je ne comprends pas est que "wmctrl -d" ne me renvoie qu'UN
desktop, alors que j'en attendais 4...

Bizarre, avec la configuration par défaut de xfce4 de Debian 11,
j'ai bien quatre espaces de travail de mon côté :

$ wmctrl -d | wc -l
4

Peut-être que la configuration par défaut a été retouchée ?
Peut-être que le mode verbeux en dira plus sur la configuration
des bureaux :

$ wmctrl -v -d

Bonne soirée,




Re: Capture d'écran avec wmctrl+import

2021-10-12 Par sujet Pierre ESTREM

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 `0x0563': 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,  :)




Re: Capture d'écran avec wmctrl+import

2021-10-12 Par sujet didier gaumet



Le mardi 12 octobre 2021 à 03:52 +0200, Pierre ESTREM a écrit :
> Bonjour,
> 
> 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.
> Par exemple dans celui-ci j'ai une instance de firefox.
> 
> Mon script :
> 
> #!/bin/bash
> 
> # window est l'ID de la fenêtre
> window="$(wmctrl -l | grep -i "firefox" | cut -f1 -d" ")"
> 
> # Capture de l'image
>   import -window "$window" screenshot.png
> 
> Et j'obtiens l'erreur :
> 
> import: unable to read X window image `0x0563': 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 ?
> 
> Merci
> pierre estrem

En exécutant ces mêmes commandes en interactif ça marche mais pas en
les collant dans un fichier exécutable. Ce qui m'a fait me demander si
il ne fallait pas spécifier le chemin d'accès: en spécifiant par
exemple ~/screenshot.png au lieu de screenshot.png, chez moi ça
marche...




Re: Capture d'écran avec wmctrl+import

2021-10-12 Par sujet Pierre ESTREM

Bonsoir,

Ben non, ça ne passe pas.
Pourquoi compliquer avec 'awk' ?
Un bon vieux 'cut' fait l'affaire.

L'ID de la fenêtre s'obtient aussi facilement :

id="$(wmctrl -l | grep -i -G "firefox$" | cut -f1 -d" ")"

Et c'est la commande dessous qui échoue :

 import -window "$id" screenshot.png

Pas besoin du timestamp ; je n'en suis qu'aux tests.

pierre estrem


Le 12/10/2021 à 04:50, Bernard Schoenacker a écrit :

- Mail original -

De: "Pierre ESTREM"
À: "ML Debian User French"
Envoyé: Mardi 12 Octobre 2021 03:52:33
Objet: Capture d'écran avec wmctrl+import

Bonjour,

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.
Par exemple dans celui-ci j'ai une instance de firefox.

Mon script :

#!/bin/bash

# window est l'ID de la fenêtre
window="$(wmctrl -l | grep -i "firefox" | cut -f1 -d" ")"

# Capture de l'image
   import -window "$window" screenshot.png

Et j'obtiens l'erreur :

import: unable to read X window image `0x0563': 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 ?

Merci
pierre estrem


Bonjour Pierre,


Pourrais-tu simplement essayer de corriger ton script du fait que tu as
2 occurrences qui se marchent dessus et je suis en train de déverminer ton
script  


En premier je fais un essai pour trouver firefox :

wmctrl -l |grep -i -w  "firefox"

j'obtiens un premier résultat convenable :

0x0480002c  4 antigen 16 exemples de commandes grep pour vous aider dans le 
monde réel - Mozilla Firefox

je continue de vérifier ton script :

wmctrl -l |grep -i -w  "firefox" | cut -f1


j'obtiens :

0x0480002c  4 antigen Zimbra: Répondre - Mozilla Firefox

Je reprends ton script à la base en évitant les erreurs :

wmctrl -l |grep -i -w  "firefox" |awk '{print $1}' |tail -1


et le résultat donne le PID de Firefox :
0x0480002c


Pourrais-tu essayer la commande ?

Ensuite, je t'invite à relire le fil de discussion concernant
tesseract et les documents PDF images qui doivent impérativement
être convertis au format Tiff et non au format png ...

window="$(wmctrl -l |grep -i -w  "firefox" |awk '{print $1}' |tail -1)"
  
import -window "$window" screenshot.png



en tout cas maintenant, c'est opérationnel pour obtenir une image png
maintenant, il te faudra convertir l'image png au format tiff :

convert screenshot.png screenshot.tiff


pour ma part je n'aime pas du tout cette façon de faire du fait qu'il me manque
un point qui peux devenir gênant en en donnant pas un "timestamp" de la capture
dans le nom du fichier

correction :
import -window "$window" screenshot-$(date +%Y-%m-%d-%H-%M).png
convert screenshot*.png  screenshot*.tiff


après il te suffira de passer à la moulinette via tesseract

Merci pour ton aimable attention

Bien à toi

Bernard





Re: Capture d'écran avec wmctrl+import

2021-10-11 Par sujet Bernard Schoenacker



- Mail original -
> De: "Pierre ESTREM" 
> À: "ML Debian User French" 
> Envoyé: Mardi 12 Octobre 2021 03:52:33
> Objet: Capture d'écran avec wmctrl+import
> 
> Bonjour,
> 
> 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.
> Par exemple dans celui-ci j'ai une instance de firefox.
> 
> Mon script :
> 
> #!/bin/bash
> 
> # window est l'ID de la fenêtre
> window="$(wmctrl -l | grep -i "firefox" | cut -f1 -d" ")"
> 
> # Capture de l'image
>   import -window "$window" screenshot.png
> 
> Et j'obtiens l'erreur :
> 
> import: unable to read X window image `0x0563': 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 ?
> 
> Merci
> pierre estrem
> 

Bonjour Pierre,


Pourrais-tu simplement essayer de corriger ton script du fait que tu as 
2 occurrences qui se marchent dessus et je suis en train de déverminer ton 
script  


En premier je fais un essai pour trouver firefox :

wmctrl -l |grep -i -w  "firefox"  

j'obtiens un premier résultat convenable :

0x0480002c  4 antigen 16 exemples de commandes grep pour vous aider dans le 
monde réel - Mozilla Firefox

je continue de vérifier ton script :

wmctrl -l |grep -i -w  "firefox" | cut -f1 


j'obtiens :

0x0480002c  4 antigen Zimbra: Répondre - Mozilla Firefox

Je reprends ton script à la base en évitant les erreurs :

wmctrl -l |grep -i -w  "firefox" |awk '{print $1}' |tail -1 


et le résultat donne le PID de Firefox :
0x0480002c


Pourrais-tu essayer la commande ?

Ensuite, je t'invite à relire le fil de discussion concernant 
tesseract et les documents PDF images qui doivent impérativement
être convertis au format Tiff et non au format png ...

window="$(wmctrl -l |grep -i -w  "firefox" |awk '{print $1}' |tail -1)"
 
import -window "$window" screenshot.png


en tout cas maintenant, c'est opérationnel pour obtenir une image png 
maintenant, il te faudra convertir l'image png au format tiff :

convert screenshot.png screenshot.tiff


pour ma part je n'aime pas du tout cette façon de faire du fait qu'il me manque 
un point qui peux devenir gênant en en donnant pas un "timestamp" de la capture 
dans le nom du fichier 

correction :
import -window "$window" screenshot-$(date +%Y-%m-%d-%H-%M).png
convert screenshot*.png  screenshot*.tiff


après il te suffira de passer à la moulinette via tesseract 

Merci pour ton aimable attention

Bien à toi

Bernard



Capture d'écran avec wmctrl+import

2021-10-11 Par sujet Pierre ESTREM

Bonjour,

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.

Par exemple dans celui-ci j'ai une instance de firefox.

Mon script :

#!/bin/bash

# window est l'ID de la fenêtre
window="$(wmctrl -l | grep -i "firefox" | cut -f1 -d" ")"

# Capture de l'image
 import -window "$window" screenshot.png

Et j'obtiens l'erreur :

import: unable to read X window image `0x0563': 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 ?

Merci
pierre estrem