मैक पर फ़ाइल प्रकार के लिए आइकन कैसे सेट करें?


42

कुछ फ़ाइल प्रकारों के लिए एक आइकन सेट करने के लिए पूरे सिस्टम को कैसे सोचा गया ?

उदाहरण के लिए, मेरे पास पाठ फ़ाइलें हैं जो .scala एक्सटेंशन के साथ समाप्त होती हैं और मैं उस फाइल के लिए पूरे सिस्टम के माध्यम से और इस एक्सटेंशन की किसी भी नई बनाई गई फ़ाइल के लिए एक आइकन जोड़ना चाहता हूं।

धन्यवाद।


बस आपने देखा कि आप एक मैक हैं ... लेकिन वैसे भी, विंडोज पर आप उस फ़ाइल प्रकार से जुड़े डिफ़ॉल्ट एप्लिकेशन को बदल देंगे। फ़ाइल तब उस एप्लिकेशन के आइकन पर ले जाती है।
MrWhite

12
@ w3d: वह मैक पर नहीं है, वह मैक पर है।
वफ़र

जवाबों:


41

फ़ाइल प्रकारों के लिए आइकन लॉन्च सेवाओं (अन्य चीजों के साथ सेवा का निर्धारण, जो एप्लिकेशन एक फ़ाइल प्रकार को संभालता है) द्वारा नियंत्रित किए जाते हैं। फ़ाइल आइकन हमेशा डिफ़ॉल्ट रूप से फ़ाइल खोलने वाले एप्लिकेशन हैंडलिंग द्वारा प्रदान किया जाता है। इस तरह, उदाहरण पूर्वावलोकन डिफ़ॉल्ट रूप से, और PNG आइकन द्वारा पीडीएफ आइकन प्रदान करता है, लेकिन यदि आप Pixelmator का उपयोग करके खोलने के लिए सभी PNG फ़ाइलों को बदलते हैं, तो इन फ़ाइलों को बाद में Pixelmator-style आइकन मिलता है।

आपको जो करने की आवश्यकता है वह आपकी फ़ाइल प्रकार की परिभाषा है जो इसे डिफ़ॉल्ट रूप से खोलता है, या फ़ाइल प्रकार के लिए अपना स्वयं का "डमी" एप्लिकेशन बनाएं


एक उदाहरण के रूप में, मेरे सिस्टम के बारे में अभी तक नहीं पता है .scala, और मैं TextMateइसे संभालना चाहता हूं ।

सबसे पहले, मैं शो पैकेज सामग्री के TextMate.appलिए, नेविगेट Contents/और खुले Info.plist, किसी टेक्स्ट संपादक, या के साथ Property List Editorएप्पल के डेवलपर टूल का, हिस्सा।

TextMate इसके लिए एक असामान्य प्रारूप का उपयोग करता है Info.plist(यह आमतौर पर द्विआधारी या XML है), जिसका एक अंश इस तरह दिखता है:

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

मूल कुंजी CFBundleDocumentTypesवह है जो हम चाहते हैं। इसका पहला बाल तत्व, घुंघराले ब्रेसिज़ में संलग्न है, जिसमें फ़ाइल प्रकार की परिभाषा है, नाम के साथ पूर्ण (फाइंडर में फ़ाइल प्रकार कॉलम के लिए), फ़ाइल एक्सटेंशन और आइकन फ़ाइल (के ADAलिए TextMate.app/Contents/Resources/ADA.icns) का नाम है।

समर्थन करने के लिए .scala, हमें एक ही मूल तत्व के तहत, ऊपर के समान एक भाई तत्व जोड़ना होगा CFBundleDocumentTypes:

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

सादगी के लिए, मैं एक ही आइकन फ़ाइल का उपयोग कर रहा हूं, लेकिन हम स्वयं बना सकते हैं, इसे कॉपी कर सकते हैं TextMate.app/Contents/Resources/SCALA.icnsऔर इसे इसमें संदर्भित कर सकते SCALAहैं Info.plist

अब, TextMate को बंद करें यदि यह चल रहा है, तो एप्लिकेशन TextMate.appको एक अलग फ़ोल्डर में ले जाएं, और इसे फिर से खोलें। इसे बंद करें, और इसे वापस ले जाएं, फिर इसे फिर से खोलें। यह किया जाता है इसलिए लॉन्च सेवाओं ने हमारे द्वारा किए गए परिवर्तनों को पूरा Info.plistकिया।

परिणाम इस तरह दिखता है (याद रखें, हमने TextMate Ada आइकन का पुन: उपयोग किया है .scala):

वैकल्पिक शब्द

यदि आप किसी .scalaफ़ाइल को खोलने के लिए किसी एप्लिकेशन को संबद्ध नहीं करना चाहते हैं (तो इसकी कल्पना नहीं कर सकते, लेकिन ऐसा करने का एक तरीका है): फ़ाइल में परिवर्धन को निम्न में बदलें:

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

अब, एप्लिकेशन फ़ाइल प्रकार की घोषणा करता है, लेकिन सिस्टम को बताता है कि यह नहीं जानता कि इसे कैसे संभालना है (Apple फ़ॉन्ट प्रकार की घोषणा करने वाले फाइंडर का उदाहरण देता है, हालांकि यह उन्हें स्वयं नहीं खोल सकता है)।

* ध्यान दें कि फ़ाइल प्रकार का कोई भी स्थायी अनुप्रयोग कार्य आइकन को ओवरराइड करता है, शायद "अज्ञात दस्तावेज़" प्रकार को।


यदि आपके पास पहले से कोई एप्लिकेशन संबद्ध है .scala, और संबंधित एप्लिकेशन को बदले बिना फ़ाइल आइकन बदलना चाहते हैं:

एप्लिकेशन का खोलें Info.plist, फ़ाइल प्रकार प्रविष्टि के लिए देखें और आवेदन CFBundleDocumentTypesप्राप्त करें CFBundleTypeIconFile। इस फ़ाइल को संशोधित करें .../Contents/Resources/और इसे कुछ ही समय बाद फाइंडर में परिलक्षित होना चाहिए।


बोनस की जानकारी:

किसी एकल दस्तावेज़ या फ़ोल्डर के आइकन को छवि फ़ाइल में कैसे बदलें

मान लें कि आपके पास एक ऐसी छवि है ~/Desktop/test.pngजिसका आप एक आइकन का उपयोग करना चाहते हैं (यह ऊपर दिया गया स्क्रीनशॉट है .scala/ TextMate / AdM icon परिवर्तन का वर्णन करने के लिए ।

खोलें /Applications/Utilities/Terminal.appऔर दर्ज करें:

sips -i ~/Desktop/test.png

यह test.pngफ़ाइल आइकन को उसकी छवि में बदल देगा । चूंकि मुझे पुनरावृत्ति का आनंद मिलता है, इस कोशिश की सुविधा देता है:

इससे पहले, सादा पूर्वावलोकन pngआइकन (छवि पूर्वावलोकन निष्क्रिय है):

वैकल्पिक शब्द

बाद में, छवि फ़ाइल ही इसका पूर्वावलोकन है:

वैकल्पिक शब्द

अब हम फाइल के गेट इंफो डायलॉग को खोल सकते हैं , ऊपर बाईं ओर वांछित, भविष्य के डॉक्यूमेंट आइकन पर क्लिक करें, Cmd-Cइसे कॉपी करने के लिए, डॉक्यूमेंट फाइल के गेट इंफो डायलॉग को खोलें , शीर्ष बायीं ओर अनसोल्ड, करंट डॉक्यूमेंट आइकन पर क्लिक करें और शीर्ष Cmd-Vपेस्ट करें। आइकन हम चाहते हैं।


वैकल्पिक रूप से, आप उस छवि फ़ाइल को खोल सकते हैं जिसे आप पूर्वावलोकन में आइकन के रूप में उपयोग करना चाहते हैं, Cmd-Aसभी को चुनने के Cmd-Cलिए, छवि को क्लिपबोर्ड पर कॉपी करने के लिए। फिर लक्ष्य दस्तावेज़ के गेट इन्फो डायलॉग को खोलें , ऊपरी बाईं ओर बदलने के लिए आइकन का चयन करें, और Cmd-Vउस पर छवि पेस्ट करें।


2
सत्यापित करने के लिए एक बात: क्या यह एप्लिकेशन के डिजिटल हस्ताक्षर को अमान्य करता है? codesign --verify --verbose /Applications/TextMate.appया कुछ और समान। यदि अमान्य है, तो फ़ायरवॉल में अपवाद की आवश्यकता वाले अनुप्रयोगों के लिए ऐसा न करें, या किचेन की आवश्यकता है। मुझे यकीन नहीं है कि हस्ताक्षर के साथ खिलवाड़ करने से और क्या बुरा हो सकता है। (विस्तार के लिए +1!)
अर्जन

1
BAH को संपादित करें , मैंने पहली बार स्किम्ड किया और एलएस अपडेट के लिए अपने वैकल्पिक तरीके को नहीं देखा। meh, FWIW: एप्लिकेशन के (या किसी बंडल / पैकेज के) बदलने के बाद बस एक चीज Info.plist: आपको touchइसकी संशोधन तिथि को अपडेट करने के लिए बंडल के रूट स्तर की आवश्यकता होगी । फिर फाइंडर में, एप्लिकेशन / बंडल / पैकेज का चयन करें और फिर से चयन करें और जब यह नोटिफिकेशन की तारीख लॉन्च सर्विसेज डेटाबेस में कैश्ड जानकारी की तुलना में बाद में हो, तो यह इसे फिर से पंजीकृत कर देगा, जिससे किसी भी बदलाव को पहचानना होगा आपने बनाया है
NSGod 15

1
@ अर्जन आपके पास एक बिंदु है। दुर्भाग्य से, TextMate.app: code object is not signedऔर मैं उस के माध्यम से फिर से जाना नहीं चाहता। मुझे संदेह है कि यह एक वास्तविक समस्या है, हालांकि, मैंने इसके बारे में नहीं सोचा था। संपादित करें : दूसरे विचार पर, कस्टम कीबोर्ड शॉर्टकट भी संग्रहीत किए जाते हैं Info.plist। ताकि वास्तव में एक समस्या न हो, अगर वे नहीं हैं। एकमात्र समस्या ऐप बंडल के भीतर एक अतिरिक्त आइकन फ़ाइल का जोड़ हो सकती है।
डैनियल बेक

1
मैंने ठीक उसी विधि का उपयोग किया (हालांकि उदात्त पाठ के xml Info.plist में परिवर्तन करते हुए)। नतीजतन, फ़ाइल एसोसिएशन ने काम किया, लेकिन इससे संबद्ध फ़ाइल के लिए आइकन नहीं बदला। किसी भी विचार क्यों यह काम नहीं करेगा?
gfrigon

2
पार्टी में थोड़ी देर हो गई, लेकिन मुझे @Arjan से सहमत होना होगा। अगर आपके पास एक कोड हस्ताक्षरित ऐप है, जैसे कि ओह, मुझे नहीं पता, ... Xcode ... यह वास्तव में आपको बताएगा कि ऐप को नुकसान हो रहा है और इसे हटाने और ऐप स्टोर से इसे डाउनलोड करने के लिए। क्या मैं वास्तव में पसंद नहीं है कि कैसे उत्साहित चंदवा की तरह क्षुधा खुद के लिए विस्तार माउस के सभी अपहरण। Apple के पास वास्तव में यह होना चाहिए कि जब आप किसी फ़ाइल प्रकार के लिए डिफ़ॉल्ट संपादक को सेट करते हैं, जो सिस्टम में जाता है और ऐप एसोसिएशन के लिए चीजों में सभी आवश्यक परिवर्तन करता है।
AMR

1

आपको उस प्रोग्राम के अंदर ICNS फ़ाइल को बदलने की आवश्यकता है जिसे विशिष्ट फ़ाइल प्रकार के लिए डिफ़ॉल्ट प्रोग्राम के रूप में सौंपा गया है।

1 - वांछित आइकन के लिए एक छवि बनाएं, फिर एक पीएनजी फिलाटाइप के रूप में सहेजें (पीएनजी पारदर्शिता का समर्थन करता है)।

2 - पीएनजी फ़ाइल को एक आइकन्स फ़िलाटाइप में परिवर्तित करें (FastIcns बहुत शानदार है और यह मुफ़्त है)।

3 - सीएमडी क्लिक करें या उस एप्लिकेशन पर राइट क्लिक करें, जो विशिष्ट फ़ाइल टाइप के लिए डिफ़ॉल्ट ऐप के रूप में सेट है, फिर शो पैकेज सामग्री का चयन करें।

4 - आइकनों फ़ाइल के लिए देखें कि एप्लिकेशन विशिष्ट फ़ाइल प्रकार के लिए आइकन के रूप में नामित हो रहा है, यह संभवतः संसाधन नामक फ़ोल्डर में होगा।

5 - आपके द्वारा बनाई गई आइकन्स फ़ाइल का नाम, ठीक उसी फ़ाइल का नाम, जिसे आप बदलना चाहते हैं।

6 - कॉपी और पेस्ट करें, या अपने द्वारा बनाई गई फ़ोल्डर में बनाई गई नई icns फ़ाइल को खींचें और छोड़ें, जिसे आप बदलना चाहते हैं वह स्थित है, और विकल्प दिए जाने पर प्रतिस्थापित करें चुनें।

7 - आपका काम हो गया! उस फ़ाइल प्रकार के सभी आइकन नए वांछित आइकन से बदल दिए गए हैं।


OSX का कौन सा संस्करण इस उत्तर से संबंधित है ... बस समय के लिए उस पर मुहर लगाता है जब विधि अनिवार्य रूप से बदलती है।
जोश

0

जिस तरह से मैं हमेशा इसके बारे में जाता हूं वह उस एक्सटेंशन के साथ एक फ़ाइल ढूंढना है, राइट क्लिक करें »Get Info, या Command-i, और जो Info पैनल को खींच देगा। शीर्ष पर आपका आइकन वर्तमान में छवि के लिए उपयोग किया जाता है। आप इसे बदलने के लिए उस पर एक छवि फ़ाइल को खींच सकते हैं, या यदि आपने छवि की प्रतिलिपि बनाई है, तो आप उस छवि पर क्लिक कर सकते हैं जिसे आप बदलना चाहते हैं और इसे बदलने के लिए एक पेस्ट करें।


यह भी देखें कि मैं मैक ओएस एक्स में एप्लिकेशन आइकन कैसे बदल सकता हूं? , और ध्यान दें कि पूर्वावलोकन में आप जो भी छवि देख सकते हैं, उसे एक आइकन के रूप में उपयोग किया जा सकता है, पूर्वावलोकन में इसे खोलकर, इसका चयन करके, और कमांड-सी का उपयोग करके इसे कॉपी कर सकते हैं। यह क्लिपबोर्ड पर एक छवि डाल देगा जिसमें एक आइकन के रूप में उपयोग करने के लिए एक प्रारूप भी शामिल है। फिर मौजूदा आइकन का चयन करें, और कमांड-वी का उपयोग करके क्लिपबोर्ड पेस्ट करें।
अर्जन

3
यह काम नहीं करता है। जब मैं एक .PNG फ़ाइल को जानकारी स्क्रीन पर छवि पर खींचता हूँ तो मुझे PNG में छवि के बजाय PNG आइकन मिलता है। और यह विशिष्ट फ़ाइल को बदलता है और पूरे सिस्टम में समान एक्सटेंशन वाली सभी फाइलें नहीं।
एरन काम्फ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.