しがない「げのまー」の・・・。

おいらはげのま〜 しがないげのま〜 おいらが歩くと埃が舞うぜ〜〜〜
2000 | 01 |
2003 | 09 | 10 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 |
2008 | 01 | 02 | 03 | 04 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 09 | 10 | 11 |
2011 | 11 |

2008-11-27

[][][] Hazel

$21.95 のシェアウェア

MacUpdate Promoのアプリまとめ売りにて購入。ずーーっと放置してたんだけど漸く使ってみたので。

Hazel とは。

フォルダアクション系の自動化アプリ。日本語ローカライズはされていないが簡単な英語なので、躓く事は無いと思う。

インストール

ダウンロードしてダブルクリックするだけで、システム環境設定に組込まれる。

ゴミ箱の処理。

Hazel はユーザが拡張する以外にデフォルトでゴミ箱に関する処理が出来る様になっている。

アプリ削除時に関係ファイルを捨てる。

Hazel => Trash => Enable App Sweep をチェック

これで、何かアプリケーションを捨てた時に、関連する設定ファイルなどを捨てるか否かの選択が出来る様になる。

一定時間、一定サイズでゴミ箱の中身を削除する。

それぞれ Trash に設定出来る様になっている。難しい英語では無いので自身で確かめれば良い。

前者の機能に関しては、AppDelete, uApp, AppZapper, AppCleaner, AppTrap etc... フリーやシェアで山程出ているので興味がある人は探せば良い。後者の機能も恐らく組込まれているものもあるだろう*1

フォルダアクション作製

インストール時に、サンプルアクションをダウンロードする事が出来るし、「 Folders => 歯車 => Load Sample Rules 」からも同様の物がダウンロード出来る。

それらのサンプルは「指定フォルダの中にムービーがあればムービーフォルダ」「音楽があればミュージックフォルダ」に移動する。と言う様な一種の入門編となっている。

「Rules」を選択した状態で「歯車 => Edit」から処理内容を見る事が出来るので見てみれば良い。


自動的にスポットライトタグを付ける。

例として、スポットライトタグを付ける処理を作ってみる。スポットライトタグは付いてれば便利なんだろうけど、付ける作業自体は苦痛であり続かない物だからだ。

フォルダはダウンロードフォルダとし、対象は .pdf にて説明する。

  1. Hazel => Folders から「ダウンロード」を選ぶ。無かったら左下の + にて追加すれば良い。
  2. Rules の下の + ボタンによりルール追加。
  3. Description にルール名を入力。
  4. Name と出ているプルダウンから、Extension を選択。is の右横のボックスに、pdf と入力。
  5. Move file と出ているプルダウンから、Add comment を選択。新たに表れたボックスに、test とでも入力。
  6. OK を押して、Folders に戻った後、アクティブにすれば良い。

これにて、ダウンロードフォルダに新規に入る pdf ファイルには test と言うスポットライトコメントが挿入される。もし万が一動かない様であれば、「Rules => 歯車 => Preview Rule Matches...」を選択すれば、ルール適用対象か否かは確認出来る*2。ルール適用対象であれば一覧のファイル名の右横にルール名が提示される。

Leap 用のタグを付けるのに便利。

スクリプト実行

スクリプトを埋め込む事も出来る。

#!/usr/bin/env perl 
use strict ;
use warnings ;
use IPC::Open3 ;
use Cwd ;
my $sips = q{/usr/bin/sips} ;
opendir my $dir_fh, getcwd or die ;
my $i = 0 ;
for my $name ( grep { !/^\./ and /\.jpg$/ } readdir $dir_fh){
    next if $name !~ /^jacket(\d{5})\.jpg$/ ;
    $i = $1 if $i <  $1 ;
}
closedir $dir_fh ;

my $out_name = q{jacket} . +( sprintf "%05d", ++ $i ) . q{.jpg} ;
my @cmd  = ( $sips, q{-c}, q{300}, q{300}, q{--out}, $out_name, $ARGV[0] ) ;
open3 \*WRITE, \*READ, \*ERR, @cmd ;
close WRITE ;
() = <ERR> ;
close ERR ;
close READ ;

上記のスクリプトは amazon の CD ジャケット画像から不必要な余白を削る単純なスクリプトだ。現在の amazon の画像は余白があるものもあれば無いものもあるが…。非常に単純で、「jpg ファイルを読んで、その中央 300 pixel 四方を切り取って jacket000XX.jpg と言う名前で保存する。」と言う処理を行なっている。もちろんコマンドラインからの実行も可能。


適当なフォルダにこの機能を追加してみよう。前半は省略して、「Rules」の「Edit」から。

  1. Extension を jpg
  2. 「 + 」を押して、「Name contains SS500」
  3. Do the following を「Run shell script embedded script」にし、Edit script をクリック
  4. Shell を /usr/bin/perl とし、その下のボックスに上記 perl スクリプトをコピペ。
  5. OK を押して有効にする。

Amazon のジャケットを取って来て、このフォルダに放り込めばカット後のファイルが出来るハズだ*3。出来なかったらゴメンなさい。


感想

AppleScript も Automator も実行させる事が出来るし、必要な人にとっては結構便利なアプリケーションだと思う。英語だからと敬遠していないで、トライしてみても良いかもしれない。






*1:例の全部を触った訳では無いので…

*2:但し、そのルールがアクティブである事と、ルール対象のフォルダの中に何らかのファイルが在る事。

*3:2008-11-27 現在で、SS500 と言う文字列を含むもののみだけど。仕様が変わったら当然ダメになる。

トラックバック - http://d.hatena.ne.jp/bunzaemon/20081127/p1