【Mac】control キーでスクショをクリップボードに保存する

スクショ>クリップボード>貼り付け

スクショを撮る時にcontrolキーを長押しすると、スクリーンショットをファイルに出力せず、クリップボードにコピーできる。
 スクショ画像をデスクトップに散らかさずにすむし、画像を開いてコピーする、というひと手間が省けて便利だ。

以下は 2021 年 12 月現在、macOS 12 Montery において検証した。

control キーでクリップボードにコピー

画面全体の場合は、

shift + command + control + 3

ということになる。
 画面の一部を撮影する場合は、

shift + command + 4

で撮影する範囲を選択し、controlキーを押しながら、マウスやトラックパッドから指を離す。

範囲選択によるスクリーンショット

ちなみにescキーを押せば撮影モードを終了でき、キャンセルとなる。

ウィンドウを選択して撮影するなら、

shift + command + 4

で、範囲選択モードにしてからspaceキーを押す。撮影したいウィンドウにカメラのカーソルを乗せ、control + クリック、またはcontrol + returnでクリップボードにコピーされる。

ウィンドウ選択によるスクリーンショット

ウィンドウ選択モードは、ふたたびspaceキーを押すことで範囲指定モードに戻る。

あとは、クリップボードの画像を、編集中の書類などにペーストするだけだ。
 また、プレビュー.app のファイルメニューには「クリップボードから新規作成」という項目があり、画像としても保存できる。

pagesに画像の貼り付け
pages に貼り付け

ちなみにウィンドウ撮影の時、controlキーとともにoptionキーを押しながら撮影すると、ウィンドウのみの撮影となり、ウィンドウの影をふくまない画像がクリップボードにコピーされる。
 影なしで保存すると、ファイルサイズが低く抑えられるのでお勧めだ。

影ありファイルと影なしファイルのサイズ比較

なお、

shift + command + 5

で、デスクトップを録画する画面収録を行えるが、画面収録の場合はクリップボードに動画をコピーすることは出来ないようだ。

screencapture コマンド

screencapture コマンドは、スクリーンショットを撮影する Mac 固有のコマンドである。
 このコマンドを使っても、スクリーンショットをクリップボードに保存することが出来る。
 基本的な使い方は、

screencapture ~/Desktop/スクショ.png

などと指定して実行すれば、デスクトップに「スクショ.png」という名前で画面全体のスクリーンショットが保存される。
 オプションについては、筆者は下記の記事にて勉強させていただいた。大変良い記事でありがたく思います。

📸 Mac スクリーンショットコマンド「screencapture」の使用方法まとめ | D-Box

スクリーンショットをファイルに出力せず、クリップボードに格納するオプションは、-cである。-i オプションをつけると、shift + command + 4を押した時と同じ挙動、インタラクティブモードになる。

screencaptureコマンドの挙動

インタラクティブモードに関するオプションは細かく設定されている。

-i で普通のインタラクティブモード。spaceキーで範囲選択とウィンドウ選択モードを切り替えられる。
-s で範囲選択のみ。
-W でウィンドウ選択モード優先のインタラクティブモード。spaceキーでモード切り替えできる。
-w でウィンドウ選択モードのみ。

他に、下記のようなオプションも便利そうだ。
-o でウィンドウの影をつけずにウィンドウ撮影。
-P で、撮影したスクリーンショットをプレビュー.app で開く。開いた時点では、ファイルは保存されない。
-T でタイマー撮影。-T 5なら 5 秒後に撮影となる。
-C で、マウスカーソルを含めて撮影する。上のタイマーとあわせて-T 5 -Cなどと使えば、例えば範囲選択でスクリーンショットを撮影する様子を、スクリーンショットで撮影できたりする。

しかし、スクリーンショットを撮影するたびにターミナルを引っ張り出してくるのはいかにもダルい。
 そこで、macOS Montery から実装されたショートカット.app で、アクセスしやすくしてみる。

ショートカット.appの「シェルスクリプトを実行」

使うのは、右欄「カテゴリ」内の「スクリプティング」>「シェルスクリプトを実行」だ。
 オプションの設定として、ここではウィンドウ選択モードで、影なし、ファイルを保存せずプレビューで開く、ということにする。

echo "Hello World"を消して、以下のように書きこんだ。

screencapture -WoP

以上で完成だ。
 作ったショートカットは、メインウィンドウのアイコンを右クリックすると、名称を変更したり、色を変えたりできる。
 これを左欄の「メニューバー」というフォルダに入れることにした。

ショートカットをメニューバーに

これでメニューバーから、気に入った設定でスクリーンショットの撮影ができるようになった。もはやクリップボードとか関係ないが、使いようによっては便利だと思う。

ショートカット.appのメニューバーにおける挙動