カスタムアイコンを貼るApplescript

カスタムアイコンを貼る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は、強力なカスタムアイコン作成アプリ。しかし、AppleScriptには未対応。

SimpleComicも、標準命令以外は組み込まれていません。でも、このアプリいつの間にかオープンソースになってますね。

 

arauchfuss/Simple-Comic · GitHub

https://github.com/arauchfuss/Simple-Comic

 

Img2icnsは、AppleScriptに対応している。が、有料版じゃないと、Apple Scriptで動作しない。ブロックされてる。

App StoreにImage2icnsという類似品があるので注意

 

やはり、只では済まないようだ。