DS_Storeを即削除し続けるAppleScript

僕はMacユーザでも,最近はUNIXとして使っていることが多くなりました.

LaTeXをはじめとして,Viや,UNIXコマンドも少しづつ覚えています.

しかし,MacのカーネルDarwinは元はといえばUNIXの派生OSであるにもかかわらず

UNIXのコマンド操作から遠ざかる方向として発展してきました.それは,GUIの拡充の歴史でした.

でも,やはりUNIXなのです.痒いところに手を伸ばすためには,避けては通れません.

UNIXの性質は表向きは隠しファイルなどで隠されています.

でも,いちいち隠しファイルを必要な時だけ表示させるのは非常に億劫です.

(Automatorのサンプルでワンクリックで切り替えられるAppleScriptがありますが,

最近はあまりにも頻繁に隠しファイルを編集するので,これは面倒です)

そこで,常に隠しファイルを表示させる設定にしているのですが

今度は,とある隠しファイルが気になって気になって仕方がない.

 

その名は,”.DS_Store”

これは,Finder上でアイコンの表示位置を記憶している隠しファイルらしい.

殆どの場合において,気になりません.僕は温厚な人間ですからね.

 

ですが,デスクトップ画面.

この時だけは,Macの非常にハイセンスなUIと壁紙とアイコンを邪魔する.DS_Store

デスクトップ上の.DS_Store.これを目にすると僕は修羅と化します.

(゚Д゚)ゴルァ!! .DS_Store !!さっさと失せろやああああああああ!!!!

ですので,「デスクトップの.DS_Store を定期的に削除するAppleScript」が必要になりました.

 

set state to false
repeat
tell application "Finder"
set state to get exists of file ".DS_Store" of desktop
end tell
if state then
do shell script "rm ~/Desktop/.DS_Store"
end if 
delay 1
end repeat

 

非常な試行錯誤を経て,こんな感じになりました.

1秒ごとに,.DS_Storeをゴミ箱を経由せずに即削除します.

以下,試行錯誤ポイントです.

do shell script “rm 〜”

がありますが,ここを”Finder”のdeleteを使うと,

一秒毎に「クシャ」っていうSEと共にゴミ箱へ移動します.

30分もすれば,尋常ではない量の.DS_Storeがゴミ箱に溜まりまくります.

(Macのゴミ箱は同名のファイルを削除日時を付加してリネームしまくるため)

一方,bashのrmコマンドは即削除することで一部の界隈では悪名高く有名です.(言わずもがな,「即削除」してしまうため)

 

次に,delayで1秒以下を指定することもできますが,

確かに短いと,.DS_Storeが表示した瞬間rmコマンドが実行され,

めっちゃ気色いいです∩(>◡<*)∩♡

(デスクトップ上に登場した刹那,お前はもう死んでいる)

 

でも,その代償は非常に高く,

非常に短いスパンでFinderにアクセスするため,Finderのプロセスが100%近くなります.

これでは本末転倒です.

なので,.DS_Storeの復活するスパンが5秒ということも考慮して,1秒ぐらいがまあ良い感じです.

 

さて,上のスクリプトをアプリケーション化してあげて起動すると

「Dockに表示される」

 

いらねええええ.

こんなマクロ,バックグラウンドとして動作させたいです.

 

そんな時は,このTips

Dockに表示させたくないアプリ本体を右クリックし,”パッケージの内容を表示”をクリック.

”Contents”フォルダ内の”Info.plist”をテキストエディットで開く.

<dict>の後に

<key>LSUIElement</key>
<true/>

と入力して保存.

 

これで,バックグラウンドとして動作します.

プロセスを終了したい時は,アクティブモニターあたりから,プロセスを探して終了しましょう.

 

最後に,起動直後から.DS_Storeを削除し続けてもらうために,システム設定のユーザから,ログイン後のアプリに指定しましょう.

 

これで,ハイセンスなデスクトップ生活が送れます(^^ゞ

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中