Quería utilizar screencapture
para tomar una captura de pantalla de todos los monitores desde dentro de un script, pero esto sólo parece capturar el monitor principal. ¿Cómo puedo usar screencapture
o cualquier otra herramienta invocable desde la línea de comandos para capturar todos los monitores?
Respuesta
¿Demasiados anuncios?No está bien documentado, pero es posible con la función screencapture
mando.
screencapture ~/Desktop/screen1.png ~/Desktop/screen2.png [...]
Aquí está la sección pertinente de man screencapture
:
files where to save the screen capture, 1 file per screen
Por supuesto, si lo llama mediante programación, es posible que no sepa cuántos monitores hay, por lo que tendrá que analizar la salida de system_profiler SPDisplaysDataType
o defaults read /Library/Preferences/com.apple.windowserver.plist
para determinar cuántos argumentos de nombre de archivo pasar a screencapture
. Por ejemplo:
$ system_profiler SPDisplaysDataType | grep "Online: Yes" | wc -l
2
Referencias
https://stackoverflow.com/questions/20099333/terminal-command-to-show-connected-displays-monitors-resolutions
http://hintsforums.macworld.com/showthread.php?p=695603