Para elaborar um pouco sobre respostas e comentários anteriores, a capacidade de capturar uma captura de tela de uma janela não ativa (como oculta total ou parcialmente) parece depender do gerenciador de janelas.
Usando o seguinte comando (já fornecido):
import -window <windowid> image.png
ou
xwd -id <windowid> | convert - image.png
(o -
de convert
é para usar a entrada padrão do pipe) parece ser possível sob o Enlightenment (e17, testado com o Fedora 19) para capturar uma captura de tela de:
- janelas totalmente ou parcialmente ocultas;
- janelas minimizadas;
- janelas em outros espaços de trabalho.
Eu verifiquei com Openbox (mesma configuração) e KDE (com um antigo Scientific Linux 4.8 e uma versão mais recente de ImageMagick
(sim, incrivelmente compilado…)) e em ambos os casos, as capturas de tela mostram apenas o que está no topo das camadas de exibição - ou seja, apenas o que já está visível na tela.
O ponto é que o comando import
verifica se o campo map_state
retornado por XGetWindowAttributes
é IsViewable
e, se não, retorna um erro. Pode-se verificar map_state
, por exemplo usando:
xwininfo -id <windowid> | grep 'Map State'
Parece ser sempre IsViewable
sob e17, enquanto IsUnMapped
sob openbox e KDE assim que a janela é minimizada ou o que for.
Não tenho certeza se a captura de tela está sempre limpa com o e17 enquanto ele está misturado com outras janelas quando a janela é parcialmente recuperada com outros WMs, mas obviamente também tem a ver com o modo como o WM manipula a tela.
De qualquer forma, claramente é uma questão de WM. Seria bom ter uma lista de WMs capaz vs incapaz de fazer screenshots de janelas ocultas - eu não estou fazendo isso.