カスタムアイコンを貼るApplescriptを作ろうと考えたが頓挫。
なかなか道は険しい。以下、作成頓挫までの道のり。
OSX 10.9(Mavericks)でも、FinderのAppleScriptはカスタムアイコンの貼付けに対応していない。
下のレスは、フォルダ内の画像ファイルを取り出してフォルダにカスタムアイコンを貼付けるAppleScript。
Macのこんなソフト・アプリを探してます Part46
http://anago.2ch.net/test/read.cgi/mac/1375499739/733n
on openfolderList
repeat with aFolder in folderList
putIcon(aFolder)
end repeat
end open
on putIcon(aFolder)
tell application "Finder"
set anImageFile to first file of aFolder whose name ends with "jpg"
set anIconFile to duplicateanImageFile
set name of anIconFile to "Icon" & return
set anIcon to ((aFolder as string) & "Icon" & return) as alias
end tell
tell application "Image Events"
launch
set fh to openanIcon
savefh with icon
closefh
end tell
set fh to open for accessanIcon with write permission
set eoffhto 0
close accessfh
do shell script "xattr -wx com.apple.FinderInfo '69 63 6F 6E 4D 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00' " & quoted form of POSIX path of anIcon
do shell script "xattr -wx com.apple.FinderInfo '00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00' " & quoted form of POSIX path of aFolder
end putIcon
最初は何をやっているのか分からない、不可解なスクリプトだったがなんとか理解出来た。
まず、ImageEventsには画像ファイルにカスタムアイコンを追加する機能がある(動作はsipsコマンドと同様)。以下がその部分。
save fh with icon
直前のFinderでは、フォルダ内の(リスト先頭の)画像ファイルを取り出して複製している。
複製したファイルを「Icon¥r」のファイル名に変更。この処理と最後のxattrコマンドの処理が謎すぎたのだが、どうやらフォルダのカスタムアイコンは、そのフォルダ内にIcon¥rのファイル名で存在すると判明。このIcon¥rファイルは、(カスタムアイコン(com.apple.ResourceFork)の)拡張属性付きの空ファイルとなる。
しかし、ImageEventsは128×128のアイコンサイズまでしか対応していない。システム的には、144dpiの1024×1024までいけるはずだが。
ImageEventsでのカスタムアイコン貼り付けはあきらめて、別アプリでAppleScriptから行う方法を検討してみる。
カスタムアイコン貼り付けが可能なアプリを探してみる。
- TillyTilla (http://www.ab.auone-net.jp/~p-aquila/software/tillytilla/)
- SimpleComic (http://dancingtortoise.com/simplecomic/)
- Img2icns (http://www.img2icnsapp.com/)
TillyTillaは、強力なカスタムアイコン作成アプリ。しかし、AppleScriptには未対応。
SimpleComicも、標準命令以外は組み込まれていません。でも、このアプリいつの間にかオープンソースになってますね。
arauchfuss/Simple-Comic · GitHub
https://github.com/arauchfuss/Simple-Comic
Img2icnsは、AppleScriptに対応している。が、有料版じゃないと、Apple Scriptで動作しない。ブロックされてる。
※App StoreにImage2icnsという類似品があるので注意
やはり、只では済まないようだ。