screencaptureの-iオプションを使うと、マウスで範囲やウインドウを選択して撮影する対話モードになる。Command+Shift+4と同じ操作を、コマンドから始められる。ここでは-iの操作方法と、対話モードの挙動を変える-s・-w・-W・-J・-S・-Uオプションをまとめる。

screencaptureの基本的な使い方は以下を参照。

参考: 【screencapture】コマンドで画面全体のスクリーンショットを撮る

-iで対話モードにする

-iを指定して実行すると、マウスカーソルが十字の形になり、範囲の選択を待つ状態になる。

$ screencapture -i shot.png

対話モードでは、以下のキーで操作する。

操作動作
ドラッグ選択した範囲を撮影する
Space範囲選択モードとウインドウ選択モードを切り替える
Controlを押しながら選択ファイルではなくクリップボードに保存する
Esc撮影をキャンセルする

Spaceでウインドウを選択する

Spaceを押すとウインドウ選択モードに切り替わる。ウインドウをクリックすると、そのウインドウを影付きで撮影する。

ウインドウ選択モードで撮影したウインドウ

-oを指定すると、ウインドウ選択モードで影を含めずに撮影する。

$ screencapture -i -o shot.png

Controlでクリップボードに保存する

Controlを押しながら範囲を選択すると、ファイル名を指定していてもファイルは作成されず、クリップボードに保存される。常にクリップボードに保存したい場合は、-cを指定する。

$ screencapture -i -c

Escでキャンセルした場合

Escでキャンセルするとファイルは作成されない。ただし、終了ステータスは0である。スクリプトで撮影したかどうかを判定する場合は、ファイルの有無を確認する。

$ screencapture -i shot.png
$ echo $?
0
$ ls shot.png
ls: shot.png: No such file or directory

選択モードを制限する

-sで範囲選択だけにする

-sを指定すると、範囲選択モードだけになる。Spaceを押してもウインドウ選択モードに切り替わらない。

$ screencapture -s shot.png

-sだけで対話モードになるため、-iは不要である。

-wでウインドウ選択だけにする

-wを指定すると、ウインドウ選択モードだけになる。Spaceを押しても範囲選択モードに切り替わらない。-wも、-iなしで対話モードになる。

$ screencapture -w shot.png

開始時のモードを指定する

-Wでウインドウ選択モードから始める

-Wを指定すると、ウインドウ選択モードで対話モードを始める。-wと違い、Spaceで範囲選択モードに切り替えられる。

$ screencapture -W shot.png

-Jで開始時のモードを指定する

-J <スタイル>で、対話モードを始めるときのモードを指定できる。man screencaptureによると、以下のスタイルを指定できる。

スタイル開始時のモード
selection範囲選択モード
windowウインドウ選択モード
video範囲を選択して画面収録するモード

-J windowを指定すると、-Wと同じくウインドウ選択モードで始まる。

$ screencapture -i -J window shot.png

画面収録については以下を参照。

参考: 【screencapture】-vで画面を収録する

-Sでウインドウの範囲を画面として撮影する

ウインドウ選択モードで-Sを指定すると、ウインドウではなく、ウインドウがある範囲の画面を撮影する。

$ screencapture -W -S shot.png

-Sなしでは、影を含めた画像になる。800x500ポイントの非アクティブなウインドウをクリックすると、-Sなしでは868x568、-Sありでは800x500の画像になる。影の大きさはウインドウがアクティブかどうかで変わる。-Sで撮影した画像には影が付かず、ウインドウの角の外側には背景の画面が写る。

-Tで撮影を遅らせる

-Tを組み合わせると、範囲を選択してから指定した秒数の後に撮影する。範囲を選択する画面はすぐに表示される。

$ screencapture -i -T 3 shot.png

参考: 【screencapture】-Tで時間をおいてから撮影する

-Uでツールバーを表示する

-Uを指定すると、対話モードで画面下部にツールバーを表示する。表示されるツールバーは、Command+Shift+5で表示されるものと同じである。

$ screencapture -i -U shot.png

参考

ScreenCapture Command: Capture an image of the screen in macOS