No que diz respeito ao X11, quando você alterna para outro usuário, esse usuário está em uma exibição completamente diferente.
Na sua sessão, se você executar:
echo $DISPLAY
você terá :0
, a primeira exibição virtual. No segundo usuário, o mesmo lhe dará :1
, o segundo display.
Você pode ver as telas em uso com o comando w
:
[romano:~] % w
11:32:03 up 1:05, 8 users, load average: 0,10, 0,24, 0,30
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
romano :0 :0 10:27 ?xdm? 6:25 0.13s gdm-session-wor
romano pts/1 :0 11:03 26:49 0.10s 0.10s zsh
romano pts/3 :0 11:21 0.00s 0.12s 0.01s w
default :1 :1 11:24 ?xdm? 6:25 0.07s gdm-session-wor
default pts/15 :1 11:24 1:56 0.05s 0.05s bash
Para fazer uma captura de tela a partir de uma tela do outro ou de outro usuário, o usuário a ser "fotografado" deve emitir o comando
xhost +
para ativar o acesso (nem mesmo root
poderá fazer o instantâneo de outra forma). Depois disso, você pode fazer um
DISPLAY=:1 scrot
de um script ou outro usuário. Observe que se você atirou em uma tela que não está ativa (exibida), você terá uma tela preta ou coisas estranhas --- quem sabe o que está na memória de buffer de vídeo ...
Agora cabe a você escrever um script explorando tudo isso ... você deve, em princípio, detectar qual usuário está ativo (não é fácil - ou simplesmente fotografou toda a tela e descartar os pretos depois) e fazer o captura de tela.
Boa sorte!