2008-08-27 17 views
52

में फ़ाइल एक्सटेंशन/माइम प्रकार पंजीकृत करें मैं एक लिनक्स एप्लिकेशन विकसित कर रहा हूं जिसमें इसका अपना फ़ाइल प्रारूप है। जब मैं उन फ़ाइलों पर डबल-क्लिक करता हूं तो मैं अपना ऐप खोलना चाहता हूं।लिनक्स

मैं फ़ाइल एक्सटेंशन कैसे पंजीकृत कर सकता हूं और इसे अपने आवेदन के साथ लिनक्स पर जोड़ सकता हूं? मैं एक ऐसे तरीके की तलाश में हूं जो मानक है (गनोम और केडीई आधारित सिस्टम के साथ काम करता है) और जब मेरा प्रोग्राम स्थापित होता है या पहली बार चलाया जाता है तो स्वचालित किया जा सकता है।

उत्तर

42

freedesktop.org Portland से xdg-utils का उपयोग करें।

MIME प्रकार के लिए आइकन रजिस्टर:

<?xml version="1.0"?> 
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'> 
    <mime-type type="application/x-mytype"> 
    <comment>A witty comment</comment> 
    <comment xml:lang="it">Uno Commento</comment> 
    <glob pattern="*.myapp"/> 
    </mime-type> 
</mime-info> 

विन्यास फाइल स्थापित करें::

xdg-icon-resource install --context mimetypes --size 48 myicon-file-type.png x-application-mytype 

एक विन्यास फाइल (freedesktop Shared MIME documentation) बनाएं

xdg-mime install mytype-mime.xml 

इससे आपकी फ़ाइलों में मान्यता प्राप्त हो जाता है और एक आइकन से जुड़े। xdg-mime default का उपयोग किया जा सकता है .desktop फ़ाइल स्थापित करने के बाद MIME प्रकार के साथ किसी एप्लिकेशन को संबद्ध करने के लिए।

+1

उबंटू 9.04 और फेडोरा कोर 10 में डिफ़ॉल्ट रूप से xdg उपयोग स्थापित है – jldupont

4

1) लिनक्स में यह ओएस के बजाए आपके डेस्कटॉप वातावरण का एक कार्य है।
2) गनोम और केडीई के पास इसे पूरा करने के लिए विभिन्न विधियां हैं।
3) आपको इसे दोनों तरीकों से करने से रोक नहीं है।

9

इसमें दो भाग हैं। आपको register a new file type और फिर create a desktop entry for your application की आवश्यकता है। डेस्कटॉप एंट्री आपके एप्लिकेशन को आपके नए माइम प्रकार से जोड़ती है।

मैंने सोचा कि दोनों जीनोम और केडीई (शायद केवल 4+?) freedesktop shared mime info spec का उपयोग करते थे, लेकिन मैं गलत हो सकता हूं।

0

इस स्क्रिप्ट का प्रयास करें: जरूरतों:

1. your application icon -> $APP    = FIREFOX.png 
2. your mimetype icon -> application-x-$APP = HTML.png 
मौजूदा निर्देशिका में

:


#BASH SCRIPT: Register_my_new_app_and_its_extension.sh 
APP="FOO" 
EXT="BAR" 
COMMENT="$APP's data file" 

# Create directories if missing 
mkdir -p ~/.local/share/mime/packages 
mkdir -p ~/.local/share/applications 

# Create mime xml 
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?> 
<mime-info xmlns=\"http://www.freedesktop.org/standards/shared-mime-info\"> 
    <mime-type type=\"application/x-$APP\"> 
     <comment>$COMMENT</comment> 
     <icon name=\"application-x-$APP\"/> 
     <glob pattern=\"*.$EXT\"/> 
    </mime-type> 
</mime-info>" > ~/.local/share/mime/packages/application-x-$APP.xml 

# Create application desktop 
echo "[Desktop Entry] 
Name=$APP 
Exec=/usr/bin/$APP %U 
MimeType=application/x-$APP 
Icon=$APP 
Terminal=false 
Type=Application 
Categories= 
Comment= 
"> ~/.local/share/applications/$APP.desktop 

# update databases for both application and mime 
update-desktop-database ~/.local/share/applications 
update-mime-database ~/.local/share/mime 

# copy associated icons to pixmaps 
cp $APP.png    ~/.local/share/pixmaps 
cp application-x-$APP.png ~/.local/share/pixmaps 

सुनिश्चित करें: FOO द्विआधारी/usr/bin में (या $ पथ में है)