defaultsコマンドとAutomatorでのシェルスクリプト(実際はrubyスクリプトですが)を組み合わせて実行することにしました。
1. はじめにスクリーンショットを保存するフォルダを作成します。ここでは仮にscreenshotsフォルダとし、適当なフォルダの下に作ります。
上の図では既にファイルが入っていますが、無視してください。
2. defaultsコマンドでスクリーンショットの保存先を、このscreenshotsフォルダに変更します。
$ defaults write com.apple.screencapture location ~/Documents/somewhere/screenshots
$ killall SystemUIServer
保存先の変更は、SystemUIServerの再起動が必要です。
3. Automatorを立ちあげて、フォルダアクションを選びます。
4. フォルダアクション(のワークフロー)を定義するフォルダを、先ほど変更したscreenshotsフォルダに設定します。
5. Automatorのアクションから「シェルスクリプトを実行」を選びます。今回は、rubyスクリプトを使いますので、シェルの種類を/usr/bin/rubyに変更し、下記のようなスクリプトを入力します。書く前は、rubyの方が簡単に書けるかなと思ったのですが、bashなどでもほぼ同等に問題なく書けそうですね。
スクリプト部分は下記のようになっています。ここでは、既にスクリーンショット名の先頭を"ss"にしていることを前提にしています。
re = /^ss \d{4}-\d\d-\d\d \d\d\.\d\d\.\d\d( \d+)?\.png$/
ARGV.each do |f|
if re =~ File.basename(f)
new = File.dirname(f) + "/" + File.basename(f).gsub(" ", "-")
File.rename(f, new) unless File.exists?(new)
end
end
6. フォルダアクションに適当な名前をつけて保存します。ここでは、mvssとしました。
準備は以上で終了です。
使い方は、普通どおりにcommand + shift + 3 や 4 でスクリーンショットを撮るだけです。
"ss 2013-02-14 02.34.56.png"で一旦保存された後、"ss-2013-02-14-02.34.56.png"に自動的に変更されます。
場合によっては、以前書いたpngからgifへの変換も合わせて行なってもいいかもしれません。
0 件のコメント:
コメントを投稿