Je voulais utiliser screencapture
pour faire une capture d'écran de tous les moniteurs à partir d'un script, mais cela ne semble capturer que le moniteur principal. Comment puis-je utiliser screencapture
ou tout autre outil appelable depuis la ligne de commande pour capturer tous les moniteurs ?
Réponse
Trop de publicités?C'est mal documenté, mais c'est effectivement possible avec l'option screencapture
commandement.
screencapture ~/Desktop/screen1.png ~/Desktop/screen2.png [...]
Voici la section pertinente de man screencapture
:
files where to save the screen capture, 1 file per screen
Bien sûr, si vous l'appelez de manière programmatique, il se peut que vous ne sachiez pas combien de moniteurs il y a. Vous devrez donc analyser la sortie de la fonction system_profiler SPDisplaysDataType
o defaults read /Library/Preferences/com.apple.windowserver.plist
pour déterminer le nombre d'arguments de nom de fichier à transmettre à screencapture
. Par exemple :
$ system_profiler SPDisplaysDataType | grep "Online: Yes" | wc -l
2
Références
https://stackoverflow.com/questions/20099333/terminal-command-to-show-connected-displays-monitors-resolutions
http://hintsforums.macworld.com/showthread.php?p=695603