Macでファイルタイプのアイコンを設定する方法は?


42

システム全体と考えられるいくつかのファイルタイプにアイコンを設定する方法は?

たとえば、拡張子が.scalaのテキストファイルがあり、システム全体でそのファイルのアイコンと、この拡張子の新しく作成されたファイルのアイコンを関連付けたいと思っています。

ありがとう。


あなたがMACだということに気づいた...しかし、とにかく、Windowsでは、そのファイルタイプに関連付けられているデフォルトのアプリケーションを変更します。ファイルは、そのアプリケーションのアイコンを引き継ぎます。
MrWhite

12
@ w3d:彼はMACではなく、Macです。
ワッファー

回答:


41

ファイルタイプのアイコンは、Launch Services(特に、どのアプリケーションがファイルタイプを処理するかを決定するサービス)によって処理されます。ファイルアイコンは、デフォルトでファイルを開くアプリケーション処理によって常に提供されます。このように、たとえば、プレビューはデフォルトでPDFアイコンとPNGアイコンを提供しますが、代わりにPixelmatorを使用してすべてのPNGファイルを開くように変更すると、これらのファイルは後でPixelmatorスタイルのアイコンを取得します。

あなたがする必要があるのは、デフォルトでそれを開くアプリケーションにファイルタイプ定義を追加するか、ファイルタイプのためにあなた自身の「ダミー」アプリケーションを作成することです


例として、私のシステムはまだについて知らないので.scalaTextMateそれを処理したいと思います。

まず、I パッケージの内容を表示するTextMate.app、ナビゲートするContents/、オープンInfo.plist、いずれかのテキストエディタ、またはとProperty List Editor、Appleの開発者向けツールの一部。

TextMateは、Info.plist通常はバイナリまたはXMLの通常ではない形式を使用しますが、その抜粋は次のようになります。

CFBundleDocumentTypes = (
    {   CFBundleTypeName = "ADA source";
        CFBundleTypeExtensions = (adb, ads); 
        CFBundleTypeIconFile = ADA; 
    },

親キーCFBundleDocumentTypesは私たちが欲しいものです。中括弧で囲まれた最初の子要素には、ファイルタイプ定義が含まれ、名前(Finderのファイルタイプ列の場合)、ファイル拡張子、およびアイコンファイルの名前(ADAfor TextMate.app/Contents/Resources/ADA.icns)が含まれます。

をサポートする.scalaには、同じ親要素の下に、上記のような兄弟要素を追加する必要がありますCFBundleDocumentTypes

CFBundleDocumentTypes = (
    {   CFBundleTypeName = "ADA source";
        CFBundleTypeExtensions = (adb, ads); 
        CFBundleTypeIconFile = ADA; 
    },
    {   CFBundleTypeName = "Scala source";
        CFBundleTypeExtensions = (scala); 
        CFBundleTypeIconFile = ADA; 
    },

簡単にするため、私は同じアイコンファイルを使用していますが、我々は、1に自分自身を作成し、それをコピーすることができますTextMate.app/Contents/Resources/SCALA.icnsし、としてそれを参照SCALAの中でInfo.plist

次に、TextMateが実行中の場合は閉じ、アプリケーションTextMate.appを別のフォルダーに移動して、再度開きます。閉じて、元に戻し、もう一度開きます。これは、Launch ServicesがInfo.plist実行したばかりの変更を取得するために行われます。

結果は次のようになります(TextMate Adaアイコンをに再利用したことを思い出してください.scala):

代替テキスト

.scalaファイルを開くためにアプリケーションを関連付けたくない場合(理由は想像できませんが、これを行う方法があります):ファイルへの追加を次のように変更します。

    {   CFBundleTypeName = "Scala source";
        CFBundleTypeExtensions = (scala); 
        CFBundleTypeIconFile = ADA; 
        CFBundleTypeRole = "None";
    },

これで、アプリケーションはファイルタイプを宣言しますが、その処理方法がわからないことをシステムに伝えます(Appleは、Finderがフォントタイプを宣言する例を示していますが、それ自体は開けません)。

*ファイルタイプへの永続的なアプリケーションの割り当ては、アイコン、おそらく「不明なドキュメント」の種類をオーバーライドすることに注意してください。


に関連付けられたアプリケーションが既にあり、関連付けられたアプリケーション.scalaを変更せずにファイルアイコンを変更するだけの場合:

アプリケーションを開きInfo.plist、でファイルタイプエントリを探しCFBundleDocumentTypes、を取得しCFBundleTypeIconFileます。このファイルを変更する.../Contents/Resources/と、すぐにFinderに反映されるはずです。


ボーナス情報:

単一のドキュメントまたはフォルダーのアイコンを画像ファイルに変更する方法

~/Desktop/test.pngアイコンを使用したい画像があると仮定します(.scala/ TextMate / Adaアイコンの変更を説明するために上記で使用したスクリーンショットです)。

開い/Applications/Utilities/Terminal.appて入力:

sips -i ~/Desktop/test.png

これにより、test.pngファイルアイコンがその画像に変更されます。私は再帰が好きなので、これを試してみましょう:

以前は、プレーンプレビューpngアイコン(イメージプレビューは無効になっています):

代替テキスト

その後、画像ファイル自体がプレビューになります。

代替テキスト

これで、ファイルの情報を取得ダイアログを開き、左上の希望する将来のドキュメントアイコンをクリックしCmd-Cてコピーし、ドキュメントファイルの情報を取得ダイアログを開き、左上の不要な現在のドキュメントアイコンをクリックしてCmd-V、欲しいアイコン。


または、プレビューでアイコンとして使用する画像ファイルを開き、Cmd-Aすべてを選択して、Cmd-C画像をクリップボードにコピーすることもできます。次に、ターゲットドキュメントの[ 情報を見る ]ダイアログを開き、左上のアイコンを選択して、その上Cmd-Vに画像を貼り付けます。


2
確認する1つのこと:これは、アプリケーションのデジタル署名を無効にしますか?codesign --verify --verbose /Applications/TextMate.appまたは同様のもの。無効にした場合、ファイアウォールで例外を必要とするアプリケーションやキーチェーンを必要とするアプリケーションに対してはこれを行わないでください。署名をいじることで他に何が悪くなるかはわかりません。(詳細については+1!)
アルジャン

1
BAHを編集してください。私は初めてざっと目を通しましたが、LSの更新を強制する別の方法は見当たりませんでした。meh、FWIW:アプリケーション(または任意のバンドル/パッケージ)のInfo.plistを変更した後の1つのこと:おそらくtouch、バンドルのルートレベルに変更日を更新する必要があります。次に、Finderでアプリケーション/バンドル/パッケージの選択を解除して再選択し、Launch Servicesデータベースにキャッシュされた情報よりも変更日が遅いことに気付いた場合、再登録して変更を認識します。あなたが作った。
NSGod

1
@Arjanそこにポイントがあります。残念ながら、、TextMate.app: code object is not signedそして私はそれをもう一度やりたくありません。私はそれが本当の問題だと思うが、私はそれを考えていなかった。編集:考え直して、カスタムキーボードショートカットもに保存されInfo.plistます。そのため、実際には問題にならない場合があります。唯一の問題は、アプリバンドル内に追加のアイコンファイルを追加することです。
ダニエルベック

1
私はまったく同じ方法を使用しました(ただし、Sublime Textのxml Info.plistに変更を加えました)。その結果、ファイルの関連付けは機能しましたが、関連付けられたファイルのアイコンは変更されませんでした。これが機能しない理由は何ですか?
gfrigon

2
パーティーに少し遅れましたが、@ Arjanに同意する必要があります。コードが署名されたアプリをお持ちの場合、たとえば、わかりませんが... Xcode ...実際、アプリが破損していることと、アプリを削除してApp Storeから再ダウンロードすることがわかります。私が本当に気に入らないのは、Enthought Canopyのようなアプリがすべての拡張機能アイコンをハイジャックする方法です。Appleは、ファイルタイプにデフォルトエディタを設定すると、システムが起動し、アプリの関連付けなどに必要なすべての変更を加えることを本当に必要とするはずです。
AMR

1

特定のファイルタイプのデフォルトプログラムとして割り当てられているプログラム内のICNSファイルを置き換える必要があります。

1-目的のアイコンの画像を作成し、PNGファイルタイプとして保存します(PNGは透明度をサポートしています)。

2-pngファイルをicnsファイルタイプに変換します(FastIcnsは非常に優れており、無料です)。

3-特定のファイルタイプのデフォルトアプリとして設定されているアプリケーションをCMDをクリックまたは右クリックし、[パッケージの内容を表示]を選択します。

4-アプリケーションが特定のファイルタイプのアイコンとして指定しているicnsファイルを探します。おそらく、Resourcesというフォルダーにあります。

5-作成したicnsファイルに、置き換えたいファイルとまったく同じファイル名を付けます。

6-作成した新しいicnsファイルをコピーして貼り付けるか、または置き換えたいファイルがあるフォルダーにドラッグアンドドロップし、オプションが表示されたら置き換えを選択します。

7-完了です!そのファイルタイプのすべてのアイコンが、新しい目的のアイコンに置き換えられました。


この答えはOSXのどのバージョンに関係します...メソッドが必然的に変更されたときにタイムスタンプするためです。
JoshP

0

私がいつもこれについて行く方法は、その拡張子を持つファイルを見つけ、右クリック»情報を見る、またはCommand-iを押すと、情報パネルが表示されます。上部には、現在画像に使用されているアイコンが表示されます。画像ファイルをその上にドラッグして変更するか、画像をコピーした場合は、変更する画像をクリックして貼り付けて変更することができます。


Mac OS Xでアプリケーションアイコンを変更するにどうすればよいですか?の画像も参照してください、プレビューで開くことができる画像はすべて、プレビューで開いて選択し、Command-Cを使用してコピーすることで、アイコンとして使用できることに注意してください。これにより、アイコンとしても使用できるフォーマットを含む画像がクリップボードに配置されます。次に、既存のアイコンを選択し、Command-Vを使用してクリップボードを貼り付けます。
アルジャン

3
これは機能しません。.PNGファイルを情報画面の画像にドラッグすると、PNGの画像ではなくPNGアイコンが表示されます。また、特定のファイルを変更し、システム全体で同じ拡張子を持つすべてのファイルを変更するわけではありません。
エランKampf
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.