تسجيل امتدادات الملفات / أنواع التمثيل الصامت في Linux

StackOverflow https://stackoverflow.com/questions/30931

سؤال

أقوم بتطوير تطبيق Linux له تنسيق ملف خاص به.أريد أن يتم فتح تطبيقي عند النقر المزدوج على تلك الملفات.

كيف يمكنني تسجيل امتداد الملف وربطه بتطبيقي على Linux؟أنا أبحث عن طريقة قياسية (تعمل مع الأنظمة المستندة إلى GNOME وKDE) ويمكن إجراؤها تلقائيًا عند تثبيت برنامجي أو تشغيله لأول مرة.

هل كانت مفيدة؟

المحلول

يستخدم xdg-utils من freedesktop.org بورتلاند.

قم بتسجيل الرمز لنوع MIME:

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

إنشاء ملف التكوين (وثائق MIME المشتركة لـ freedesktop):

<?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-mime install mytype-mime.xml

يؤدي هذا إلى التعرف على ملفاتك وربطها بأيقونة. xdg-mime default يمكن استخدامه لربط تطبيق بنوع MIME بعد حصولك على ملف .desktop تم تثبيت الملف.

نصائح أخرى

هنالك جزئين لهذا.أنت بحاجه إلى تسجيل نوع ملف جديد وثم إنشاء إدخال سطح المكتب للتطبيق الخاص بك.يقوم إدخال سطح المكتب بربط التطبيق الخاص بك بنوع mime الجديد الخاص بك.

اعتقدت أن كلا من Gnome وKDE (ربما 4+ فقط؟) يستخدمان مواصفات معلومات mime المشتركة لـ freedesktop, ، ولكن قد أكون مخطئا.

1) في نظام التشغيل Linux، تعد هذه إحدى وظائف بيئة سطح المكتب لديك وليس نظام التشغيل نفسه.
2) لدى GNOME وKDE طرق مختلفة لتحقيق ذلك.
3) لا يوجد ما يمنعك من القيام بذلك في كلا الاتجاهين.

جرب هذا البرنامج النصي:الاحتياجات:

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 (أو في $PATH)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top