StatsBeginner: 初学者の統計学習ノート

統計学およびR、Pythonでのプログラミングの勉強の過程をメモっていくノート。たまにMacの話題。

Macでスクリーンショットの保存先をショートカットキーで振り分ける

ツイッターで尋ねられて、自分でも気になったので設定してみました。
Macでスクリーンショットを撮るときに、ショートカットキーを工夫して、保存先を振り分ける設定です。
Macのスクリーンショットは、じつはいろいろオプションがあって、ウィンドウ単位で撮影するときに影をつけるかどうかとかも変えられるのですが、私は基本的には、


shift+command+3(全画面を撮影)
shift+command+4(インタラクティブモードで範囲を指定して撮影。space)


の2パターンしか使いません。
で、仮に用途に応じて2つのフォルダに振り分けたいとすれば、計4つのショートカットがあればいいことになります。振り分けるフォルダは、仮に、
"~Desktop/ScreenShot1"
"~Desktop/ScreenShot2"
だとしておきます。


どうやってショートカットをつくるかというと、

  1. 処理自体は、シェルスクリプトで書く
  2. Automatorで、そのシェルスクリプトを呼び出すService(Auromator上ではQuick Actionと呼ばれるのでややこしいが)を作っておく
  3. System Preferences(日本語環境の場合は「環境設定」) > Keybord > Shortcuts > Servicesで、さっきつくったサービスを呼び出すショートカットを設定する*1


という手順になります。
サービスってのは、たとえば↓の画像の場合だとFinderの歯車マークの中に並んでいる、様々な処理のことで、私は正確に理解してないですが「Mac上のいろいろな場面で、ワンクリックで呼び出せる処理」ぐらいに思っています。


f:id:midnightseminar:20200710143305p:plain


さて設定手順ですが、まずAutomatorで、New DocumentをQuick Actionとして立ち上げます。


f:id:midnightseminar:20200710142929p:plain


左のメニューの、Utilitiesから、Run Shell Scriptを、右のワークフローのところにドラッグします。その上にある設定欄は、一行目のinputを設定するところを、no inputにしときます。


f:id:midnightseminar:20200710142952p:plain


次にスクリーンショットを撮って名前を付けて保存する処理をbashで書きますが(上の画像ではもう書いてありますが)、スクリーンショットを撮るコマンドである"screencapture"の細かいオプション設定は下記を参考にしてください。
https://do-zan.com/mac-terminal-screencapture/


ここでは、4パターンのうち、インタラクティブモードで撮影し、ファイルをデスクトップの"ScreenShot1"というフォルダに保存するパターンだけやります。ファイル名は、頭に"sc"をつけて、その後に"20200710140230"(2020年07月10日14時02分30秒)みたいに日付と時刻を並べて、拡張子".png"をつけることにします。
1行目は時刻を取得して格納する処理です。
"-i"ってのが、インタラクティブモードを表すオプション設定。
その後ろは、要するに保存するファイルのパスですね。${current_time}でさっき取得した時刻をくっつけています。

current_time=`date +"%Y%m%d%H%M%S"`
screencapture -i ~/Desktop/ScreenShot1/sc${current_time}.png


これをAutomatorのスクリプトの欄に書いて、たとえば"ScreenShot(Interactive-ScreenShot1)"という名前で保存します。


次に、System Preferences(日本語環境の場合は「システム環境設定」) > Keybord > Shortcuts > Servicesに進むと、一覧の下のほうに、さっきつくった"ScreenShot(Interactive-ScreenShot1)"がありますので、


f:id:midnightseminar:20200710143729p:plain


その右のAdd Shortcutっていうボタンをクリックして、例えば
shift+command+7
と押します。すると、下記のように、ショートカットが登録されます。
(なお、shift+command+6のショートカットは、タッチバーを撮影する機能に割り当てられてて使えませんでした。)


f:id:midnightseminar:20200710143751p:plain


さっきつくったサービス(クイックアクション)を修正したい場合は、
~/Library/Services
という場所にファイルが保存されてるので、それをAutomatorで開いて編集すればいいです。(さっきショートカットを設定した画面から右クリックでもその場所が開けます)


で、さっそく
shift+command+7
を押してみたときに、保存先のフォルダが事前に作成されてないとエラーになります。
あと、場合によっては、スクリーンショットを撮る権限を、Automatorに与えないといけないです。↓のように、システム環境設定の、Security & PrivacyのScreen Recordingの権限を、Automatorに与えます。
これで完了です。


f:id:midnightseminar:20200710143143p:plain


なお新しいサービス(Quick Action)をAutomatorで作成したのに、ショートカット設定画面の一覧に出てこない場合は、システム環境設定のウィンドウをいったん落として開き直すと、出てきたりします。
あと、このやりかただと、まずないとは思いますが1秒以内に2回撮影すると、1回目のは上書きで消えてしまいます。

*1:私はMacの言語設定を英語にしてるのですが、英語の勉強のためでも、カッコつけてるわけでも、ましてや英語のほうが理解しやすいからでもなく、分からないことを調べるときに英語の機能名称とかでググったほうが圧倒的に情報が多いからです。一時期、なぜか英語設定にしてないと無料版がインストールできないソフトとかがあったってのもありますが。