画像の長辺を640ピクセルにリサイズするサービスを以前Automatorで作りました。ブログ記事を書く時の挿入画像を作るのにとても便利なのですが、アレコレとスクリーショットを撮るうちにデスクトップがスクリーンショットだらけになるなど問題点が見えてきました。
解決したい問題点
- デスクトップがスクリーションショットだらけになる
- スクリーンショットの名前が不満
- できることならスクリーンショット撮ったら自動的に長辺が640ピクセルの画像にしてほしい
スクリーンショットはデフォルトではデスクトップ上に作成されます。1つ2つ程度なら構いませんが、一つの記事を書くために色々とスクリーンショットを撮るとあっという間にデスクトップが散らかってしまいます。ターミナルから以下のコマンドを実行するとデフォルトでスクリーンショットが保存される場所を変更することができます。
$ defaults write com.apple.screencapture location (保存したいフォルダ)
$ killall SystemUIServer
1はコレで解決するのですが、スクリーンショットの命名が個人的に気に入りません。
スクリーンショット 2020-09-29 20.40.51
という感じで、2バイト文字もスペースも含まれる名前になります。単に気分的な問題ですが、2バイト文字もスペースも含まれない名前の方が好みです。今回は、
- 新たなショートカットを割り当てて、
- 自分好みの名前をつけて、
- デスクトップではない場所にスクリーンショットを保存する
Automatorを作成します。
新規作成>クイックアクション でサービスを新規作成します。
ワークフローが受け取る項目:入力なし
検索対象:すべてのアプリケーション
として、次に「シェルスクリプトを実行」のアクションを追加
テキストボックスに以下のコマンドを記入する
screencapture -i \~/Pictures/screenshots/screencapture\_$(date “+%Y%m%d\_%s”).png
screencaptureはスクリーンショットを撮るシェルコマンドで、コマンドオプションの -i はインタラクティブモード(範囲選択、ウィンドウモード)で撮影するオプションです。⇧ ⌘4のショートカットで撮るスクリーンショットのように、範囲を指定したり、スペースを押すことで任意のウィンドウのスクリーンショットを撮ることができます。screencaptureの引数には保存先とファイル名を指定します。
dateコマンドに+フォーマットを指定することで年月日時間のフォーマットを指定できます。今回は西暦年4桁月2桁日2桁と1970/1/1からの経過秒数を付加した名前にするためにdate “+%Y%m%d_%s”としました。
スクリーンショットを保存するフォルダは今回はホームフォルダのPicturesの下にscreenshotsにしましたが、ここもご自身のお好きな場所に設定してください。
あとは、システム環境設定のキーボード>ショートカットから、今回作ったクイックアクション(サービス)にキーを割り当てます。
⇧ ⌘6 (shift + command + 6)
コレで指定したフォルダにスクリーンショットが保存されるようになります。
次回は、保存されたスクリーンショットを自動的にリサイズするサービスを作ります。