En ce qui concerne X11, lorsque vous passez à un autre utilisateur, celui-ci se trouve sur un affichage complètement différent.
Dans votre session, si vous exécutez :
echo $DISPLAY
vous aurez :0
le premier écran virtuel. Dans le deuxième utilisateur, la même chose vous donnera :1
le deuxième affichage.
Vous pouvez voir les écrans utilisés avec la commande 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
Pour pouvoir faire une capture d'écran d'un écran à l'autre, ou d'un autre utilisateur, il faut que l'utilisateur soit "photographié". doit donnez la commande
xhost +
pour permettre l'accès (même pas root
sera capable de faire l'instantané sinon). Après cela, vous pouvez faire un
DISPLAY=:1 scrot
d'un script ou d'un autre utilisateur. Notez que si vous prenez un écran qui n'est pas actif (affiché), vous aurez un écran noir ou des choses étranges --- qui sait ce qu'il y a dans la mémoire tampon vidéo...
Maintenant c'est à vous d'écrire un script explorant tout cela... vous devriez en principe détecter quel utilisateur est actif (pas facile --- ou simplement tirer sur tout l'écran et écarter les noirs après) et faire la capture d'écran.
Bonne chance !