Só queria notar que eu tive um monte de problemas fazendo isso no Ubuntu 10.04 LTS com isso - aqui está a minha solução:
Estou na máquina A e faço logon na máquina B via ssh:
myusername@pcA:~$ ssh pcB
myusername@pcB's password:
Linux pcB 2.6.32-44-generic #98-Ubuntu SMP Mon Sep 24 17:32:45 UTC 2012 i686 GNU/Linux
Ubuntu 10.04.4 LTS
Welcome to Ubuntu!
* Documentation: https://help.ubuntu.com/
myusername@pcB:~$
Em seguida, prossigo com várias tentativas para capturar a captura de tela, e todas falharam. O problema pode ser reduzido para xwininfo
não sendo possível investigar o estado da janela:
myusername@pcB:~$ xwininfo
xwininfo: unable to open display ''
myusername@pcB:~$ sudo xwininfo
[sudo] password for myusername:
xwininfo: unable to open display ''
myusername@pcB:~$ DISPLAY=:0.0 xwininfo
No protocol specified
xwininfo: unable to open display ':0.0'
myusername@pcB:~$ DISPLAY=:0 xwininfo
No protocol specified
xwininfo: unable to open display ':0'
Bem, acontece que, por algum motivo, a chamada correta para a segmentação de X-windows via ssh é DISPLAY=:0.0 sudo xwininfo ...
- ou seja, a variável de ambiente DISPLAY=:0.0
vai primeiro; o sudo
fica em segundo - e, em seguida, o comando X correspondente:
myusername@pcB:~$ DISPLAY=:0 sudo xwininfo
xwininfo: Please select the window about which you
would like information by clicking the
mouse in that window.
myusername@pcB:~$ DISPLAY=:0.0 sudo xwininfo -root
xwininfo: Window id: 0x109 (the root window) (has no name)
Absolute upper-left X: 0
Absolute upper-left Y: 0
Relative upper-left X: 0
Relative upper-left Y: 0
Width: 1366
Height: 768
Depth: 24
Visual: 0x21
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x20 (installed)
Bit Gravity State: ForgetGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +0+0 -0+0 -0-0 +0-0
-geometry 1366x768+0+0
Agora que sabemos que xwininfo
pode investigar o estado, também não há problema em capturar a captura de tela via xwd
:
myusername@pcB:~$ DISPLAY=:0.0 sudo xwd -root > /tmp/shot.xwd