きれいなデスクトップは好きですか?

f:id:don2don:20120105020854p:image:medium:right

デスクトップ上のアイコンをきれいさっぱり片付ける

*1

デスクトップをきれいさっぱりにしたくなるときってありますよね。たとえば操作中の動画をキャプチャーしたいときや、私みたいにこーんな汚く散らかってしまったが、きれいなデスクトップで作業がしたいのにそんな急には片付けられんってとき。

いくつか専用アプリがあったのですが、有料になってしまったことと、お試し版でも結局はアプリを1つインストールすることになります。

▼ こちらのサイトで システムの属性の編集で切り替えができることを知り、自分で作ることにしました。

Macでデスクトップ上のアイコンを非表示にする方法 / Inforati

今は Automator.app からシェルが呼び出せるようになったんですね。先日それに気付いて、ターミナルで叩けるコマンドは Automator.app でアプリ化できてしまうことが分かりました。検索してみると今更的な話題ではありますが、Lion になってバージョン管理が導入されたり、ちょっと操作に癖があったので備忘録の意味で書き残すことにしました。


ターミナルコマンドで消す方法

まずは、ターミナル.app で確認してみます。以下を実行して、アイコンを消したり再表示できることを確認。(サイトには自己責任で、と書いてありました。)

    • デスクトップのアイコンをすべて消す

$ defaults write com.apple.finder CreateDesktop -boolean false

$ killall Finder

    • 元に戻す

$ defaults write com.apple.finder CreateDesktop -boolean true

$ killall Finder

もしくは

$ defaults delete com.apple.finder CreateDesktop

$ killall Finder

    • 今の状態を知る

$ defaults read com.apple.finder CreateDesktop

AppleScripter の方はサクっと書かれると思いますが、私はさらっと書けないのでシェル+Automator を使うことで割とラクに書けました。というか、ほとんど書く内容がないぐらいなので恥ずかしいですが、スクリプタープログラマーじゃない方でもできる方法ということで。シェルスクリプターの方向けに、次の記事ではもう少しマシなこともご紹介する予定です。


Automator.app での操作

使うのは純正アプリである Automator.app と 確認用に ターミナル.app の2つです。


Automator.app を起動すると、どのフォーマットの書類を作るか尋ねられるので、あとで変更できる「ワークフロー」を選びます。


▼ 左側ペインから、ライブラリ > ユーティリティ > シェルスクリプトを実行 を右側ペインにドラッグします。


▼ シェル(上の「/bin/bash」はそのままで)にコマンドを書きこみます。


▼ あとで変更できるように、名前をつけて、一旦「ワークフロー」で保存します。


▼ 確認を求めるダイアログを出す場合

後述しますが「defaults read com.apple.finder CreateDesktop」で得た値から条件分岐で、表示する質問と実行させるコマンドを切り替えたかったのですが、面倒なのでアイコンを消すアプリと表示するアプリを別々に作ることにしました。

テストをしてうまく実行できたら、アプリ化します。ここが Lion の癖のあるところです。


▼ アプリケーションにする場合はファイルメニューから「複製…」を選び、次のダイアログでアプリケーションを選びます。

ワークフローのままでは一旦保存すると、次回からは「バージョンを保存」となり、「別名で保存」という見慣れた選択肢がありません。ところが「複製…」を選んでコピーを作ると、ファイルメニューから「保存…」が選べるようになりますので、フォーマットを「アプリケーション」にして保存します。Lion からバージョン管理がデフォルトになってしまったので、こういうときに一旦ワークフローで作ってしまうと、アプリケーションへの変更の方法がちょっと面倒です。ほかに良い方法があったらすみません、私はこうしています。


▼ 実行したところ


▼ Doc の中に置いておくとすぐにアクセスできます。ランチャーをお使いの方はメニューバーに登録しておくといいですね。

アイコンは Automator.app 書類のままで分かり難いので、変更しました。右クリック > 情報をみる で表示されたパネルの左上にあるアイコンを他のアイコンから同様にコピー&ペーストすることでお好みのものにできます。アイコンはMac_OS_X_Leopard_for_Debian GNOME-Look.orgから拝借しました。


残念なことに、Automator には If 文がないようなのです

ループはあるのに何故?どうして?

Automator.app からシェルを呼べる仕様はMac OS Xでシェルスクリプトを実行するAutomator - はこべにっき#こちらの記事をみると、Tiger のころからあったんですね。私が Mac ユーザに返り咲いたのは Leopard からですから、すでに使えていたとは驚きです。当時はそんなこととは露知らず、必要なシェルスクリプトは cron に登録して自動実行させていました。

それでも上から下に流れるだけの処理ならいいのですが、どうしても条件分岐させたくなってしまうことがあります。今回なら「defaults read com.apple.finder CreateDesktop」の結果により、確認するダイアログや実行させるコマンドを切り替えれば、アプリは1つにまとめられます。AppleScript を使えば、簡単ですが、AppleScripter でないと難しい…。

Automatorでの条件分岐 その2 邪道編: デブネコ ミサの備忘録

こちらのページを拝見したのですが、シェルでもやろうと思えばできるんですね。私だったらどうするかな? また次回考えてみます。

*1:その後、試していたら発見したことがあります。Automatorで生成したAppを実行中にカーソルを動かすと、どうも中断されてしまうのか、アイコンが消えずないことがありました。