Capture an image of the whole, or part of the screen.
Syntax screencapture [options] [file]
Key -c Force screen capture to go to the clipboard. -C Capture the cursor as well as the screen. Only allowed in non-interactive modes. -d Display errors to the user graphically. -i Capture screen interactively, by selection or window. The control key = copy screen to the clipboard. The space key will toggle between mouse selection and window selection modes. The escape key will cancel the screen shot. -m Only capture the main monitor, undefined if -i is set. -M Open the taken picture in a new Mail message. -o In window capture mode, do not capture the shadow of the window. -P Open the taken picture in a Preview window. -s Only allow mouse selection mode. -S In window capture mode, capture the screen instead of the window. -t format Image format to create, default is png (other options include pdf, jpg, tiff and others). -T seconds Take the picture after a delay of seconds, default=5 Handy for arranging windows/menus before taking the screenshot. -w Only allow window selection mode. -W Start interaction in window selection mode.
-x Do not play sounds. -l windowid Capture a specific windowsid. -R x,y,w,h Capture a screen rectangle, top,left,width,height.
file Where to save the screen capture, 1 file per screen. -help Display brief syntax summary.
To turn off the default window drop shadows, this will make your screenshot files smaller.
defaults write com.apple.screencapture disable-shadow -bool true
killall SystemUIServer
By default screen shots are saved to the desktop, but this can be changed with a default
Set save location to ~/Desktop:
defaults write com.apple.screencapture location ~/Desktop && \ killall SystemUIServer
By default screneshots are saved as .png files, supported formats are: .bmp, .gif, .jpg, .jpeg, .pdf, .tiff
Set file format to .png:
defaults write com.apple.screencapture type -string "png"
To capture screen content while logged in via ssh, you must launch screencapture in the same mach bootstrap hierarchy as loginwindow:
PID=pid of loginwindow
sudo launchctl bsexec $PID screencapture [options]
Examples
Wait 10 seconds, then take a screen capture of the entire screen including the cursor:
$ screencapture -T 10 -C ~/screencap1.png
To take a screenshot of one window, excluding the surrounding drop shadow, point and click with the mouse to take the screenshot:
$ screencapture -o -W ~/screencap2.png
Take a screen shot of the DVD player (where the normal keyboard shortcuts won't work)
$ screencapture -i ~/Desktop/dvd.png
The mouse will turn into crosshairs, hit the space bar for camera mode, now click the window the DVD is playing in.
A file called "dvd.png" will appear on your desktop.
“The photograph itself doesn't interest me. I want only to capture a minute part of reality” ~ Henri Cartier-Bresson
Related macOS commands:
sips - Scriptable image processing system
macOS Keyboard shortcuts
VLC will also allow screenshots of DVDs