デスクトップアイコンの位置を記録/復元
【使用目的】
まれにOSXでは、起動時にデスクトップが勝手に整頓されている場合があります。
それを防ぐために、スクリプトで「デスクトップアイコンの位置を記録/復元」するものです。
【作成方法】
ユーティリティ > AppleScript エディタを起動。
AppleScriptコードを入力して保存。
保存形式は、アプリケーションでハンドラの実行後に終了しないにチェックを入れます。
▼AppleScriptコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
delay 15 --自動ログインの場合は、負荷を減らすため念のため15秒待機--手動起動の場合は必要なし。 property iconList : {} property posList : {} tell application "Finder" if iconList ≠ {} then --位置情報が記録されている場合のみ実行 repeat with k from 1 to (count iconList) try set desktop position of item k of iconList to item k of posList end try end repeat end if end tell on quit --終了項目 tell application "Finder" if iconList ≠ {} then --位置情報が記録されている場合のみ実行 activate set result3 to display dialog "アイコンの位置を<復元> or <記録>しますか?" & return & return & "何も操作をしない場合、" & return & "10秒後に位置情報を記録して終了します。" buttons {"復元", "何もしない", "記録"} default button 3 giving up after 10 if button returned of result3 = "復元" then repeat with k from 1 to (count iconList) try set desktop position of item k of iconList to item k of posList end try end repeat else if button returned of result3 = "何もしない" then else if button returned of result3 = "記録" then set iconList to (every item of desktop) set posList to (desktop position of every item of desktop) else set iconList to (every item of desktop) set posList to (desktop position of every item of desktop) end if else --位置情報が無い場合 activate set result3 to display dialog "アイコンの位置を記録しても宜しいでしょうか?" & return & return & "何も操作をしない場合、" & return & "10秒後に位置情報を記録して終了します。" buttons {"いいえ", "はい"} default button 2 giving up after 10 if button returned of result3 = "はい" then set iconList to (every item of desktop) set posList to (desktop position of every item of desktop) else if button returned of result3 = "いいえ" then else set iconList to (every item of desktop) set posList to (desktop position of every item of desktop) end if end if end tell --try --tell application "Finder" to update items in desktop --end try continue quit end quit |
【使い方】
アプリケーションが出来たら、
Dockに登録して、ログイン時に開くにチェックを入れれば、(任意)
Mac起動時に自動的にアプリが立ち上がるようになります。
アプリの動きとしては、
初回の起動時は、デスクトップアイコンの位置が記録されていないので、
アプリ終了時(Mac終了時)にデスクトップアイコンの位置の記録を促すダイアログが表示されます。
2回目以降の起動時、前回のデスクトップアイコンの位置が記録されているので、
その位置情報を利用して、スクリプト側で
デスクトップアイコンの位置が自動的に復元されます。(OSX側の位置情報を利用しない。)
▼アプリ終了時のダイアログ
ちなみに、このスクリプトは、
下記のサイトを参考にアレンジを加えたものです。
ありがとうございました。
参考情報
http://blog.3lobb.jp/?itemid=226905
https://discussionsjapan.apple.com/message/100636557#100636557