Ok, achei isso para o X Window:
FVWM Fóruns • View topic - Miniatura de uma janela em outra janela de visualização
Por que você não pode acessar uma janela (isto é, tirar uma foto dela quando não está na mesma mesa / página que a viewport atual) é porque as janelas que não estão na página atual não estão mapeadas. Isso é verdade quando alguém altera páginas / mesas - as janelas não são mapeadas e as janelas na viewport atual são remapeadas.
Então, eu acho que isso significa que o que eu quero é impossível? Embora haja duas soluções alternativas:
- use
xrandr
para aumentar o tamanho virtual de (cada uma das quatro) viewports
Isso é o que funciona para mim - primeira consulta para ver qual saída você deseja e, em seguida, executar:
$ xrandr -q
Screen 0: minimum 320 x 200, current 1024 x 600, maximum 4096 x 4096
LVDS1 connected 1024x600+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1024x600 60.0*+
800x600 60.3 56.2
640x480 59.9
VGA1 disconnected (normal left inverted right x axis y axis)
$ xrandr --output LVDS1 --panning 1600x768
... veja também X / Config / Resolution - Wiki do Ubuntu
- Use
xvfb
para renderização virtual
Entendi por x11 - Renderização remota fora da tela - Falha do servidor , veja também Xvfb - Wikipedia, a enciclopédia livre para exemplos. Isto é o que funcionou para mim - cada comando vai no próprio terminal (como alguns deles são destinados a ser serviços)
# start xvfb as display 1 - note the "screen 0" there refers to "its own" screen 0; should set it to 24-bit color
Xvfb :1 -screen 0 1600x1200x24 -pixdepths 3 -fp /usr/share/fonts/X11/Type1
# start metacity on display 1 (would start gdm, but [Bug #598848: gdm no longer works with xvfb](https://bugs.launchpad.net/bugs/598848)
# needed to we have title bars, and possibility to move windows around
DISPLAY=:1 metacity
# start application (here web-browser arora) again on display 1
DISPLAY=:1 arora
# start vnc server, which will bridge display 1 to port 5900
# note - this command exists, however starts a server in background
x11vnc -display :1 -bg -nopw -listen localhost -xkb
# start vnc viewer on port 5900 - so we can see display 1:
# note also - when vncviewer exits, it also will kill the x11vnc server
vncviewer -FullColor=1 localhost:5900
O problema aqui é que nem todas as partes do sistema operacional são inicializadas - portanto, não há decoração de janelas e apenas fontes X básicas; embora, os aplicativos possam encontrar suas próprias fontes, como visto abaixo:
xvfb
parece quase ideal para mim - desde que eu poderia basicamente configurar um ambiente "invisível", tão grande quanto eu quero, e tirar screenshots diretamente dele (usando xwd
). O problema é que eu não posso ter uma janela no "meu" DISPLAY =: 0, em seguida, mude para o "virtual" DISPLAY =: 1 para captura de tela, em seguida, traga de volta para DISPLAY =: 0. Em seguida, é preciso configurar um aplicativo especificamente para xvfb
; e se isso acontecer você precisa de mais tamanho - então toda a cadeia acima precisa ser reiniciada.
Por outro lado, acho que trabalhar com 4 espaços de trabalho e grandes viewports (onde o mouse o movimenta dentro de uma porta de visualização) é um pouco confuso - então, novamente, pode alterar o tamanho e nada precisa ser reiniciado; e mais eu posso usar qualquer uma das ferramentas de captura de tela usuais (mas eu ainda tenho que mudar de viewports).
Escusado será dizer que ainda adoraria ouvir sobre uma possível solução de linha de comando que poderia fazer esse tipo de captura de tela de uma só vez :)