1

I wanna take a screenshot of a specific application using the command line. Doing

screencapture -h

Shows option "-o"

-o in window capture mode, do not capture the shadow of the window

Which sounds like it might do what I need, but I am lost on how to actually use this option. Google did not turn up any answers

Thanks!

  • I think you’d need window ID – anki Dec 24 '19 at 08:30
  • How do I get that? Seems kinda tough to get: https://apple.stackexchange.com/questions/56561/how-do-i-find-the-windowid-to-pass-to-screencapture-l –  Dec 24 '19 at 08:34
  • Duplicate of https://apple.stackexchange.com/q/378122/237687 – Solar Mike Dec 24 '19 at 09:45
  • @Solar Mike, IMO This question is not a duplicate of the linked question in your comment as that one is dealing with "specific regions" and specifically the use of the -R<x,y,w,h> capture screen rect option not a "specific window" as in the title of this question, which will require the use of either the -i or -l<windowid> options depending on specifically how it is to be captured. I guess one could say it's somewhat related, but it's not a duplicate. – user3439894 Dec 24 '19 at 17:08

1 Answers1

2

To capture a window using screencapture in Terminal, you have two options:

Interactively

-i         capture screen interactively, by selection or window
               control key - causes screen shot to go to clipboard
               space key   - toggle between mouse selection and
                             window selection modes
               escape key  - cancels interactive screen shot

You can use the -o option in conjunction with the -i option to not capture the shadow of the window, e.g.: -oi

Programmatically

-l<windowid> capture this windowsid

The -i option appears to be self-explanatory while the -l<windowid> option gives no additional info as with the -i option.


The <windowid>, for some windows can be ascertained by using AppleScript in the following example:

screencapture -l$(osascript -e 'tell app "Safari" to id of window 1') test.png

You can use the -o option in conjunction with the -l option to not capture the shadow of the window, e.g.: -ol

Some applications will not work with this method, however here are some alternatives:

Reference: How do I find the windowid to pass to screencapture -l?
Note: I am not affiliated with these projects.

user3439894
  • 58,676