بسم لله الرحمن الرحيم
الحمدلله رب العالمين و الصلاة والسلام على سيد المرسلين، سيدنا محمد عليه أفضل الصلاة و أتم التسليم ، ثم أما بعد،،،
تمهيد
عندما يكون لديك ملف ما و أردت فتحه فإنك سوف تنقر عليه بالفأرة، لكن عندما تكون تستخدم سطر الأوامر مثلا كيف تقوم بتشغيله؟ أو انك تستخدم مدير ملفات على الطرفية مثل ranger أو lf، كيف تعرف نوع الملف و ماهو البرنامج المناسب لتشغيله؟
هناك عدة طرق للتعرف على الملفات - أي بمعنى : هل هي ملف نصي أم صورة أو ملف صوتي؟ و يمكنك بعد قراءة هذا الموضوع أن تضع البرنامج الإفترضي لتشغيل نوع معين من الملفات.
يمكنك معرفة نوع الملفات من خلال الأمر file من خلال الأمر
file FileName.txt
بحيث ان FileName.txt اسم الملف و المخرجات من الأمر هو:
FileName.txt: ASCII text
هنا نعرف أن الملف عبارة ملف نصي من خلال ASCII text، وليس كل الناس تتقيد بوضع الإمتداد مثل .txt على اسم الملفات لذلك يعتبر file من أهم الأومر خصوصاً اذا كنت تتعامل مع الوصول البعيد ssh و لكننا سوف سوف نشرح xdg لأنه يتعامل مع سطح المكتب ويمكنك فتح البرامج من خلاله.
في عام 2005 كنا نقوم بمزحة ثقيلة بتضمين ملف bat في صورة عن طريق self-extracting في برامج الضغط بحيث اذا فتحها المستخدم تفتح الصورة ثم يعاد تشغيل الجهاز، ولكن أصحاب النوايا الغير سليمة و الخبيثة يقومون بكتابة الملفات bat التي تدمر المستخدمون وتسرق بياناتهم، لذلك التأكد مطلوب سواء من الأمر file أو xdg أو أي من البرامج أخرى، لأنني رأيت تطور عجيب في طرق استهداف المستخدمين خلال الأيام الأخيرة.
تثبيت xdg
اسم الحزمة التي نحتاجها هي xdg-utils
في فويد لينكس
sudo xbps-install xdg-utils
في ديبيان / أوبونتو
sudo apt install xdg-utils
في فيدورا
sudo dnf install xdg-utils
في أرش لينكس
sudo pacman -S xdg-utils
أنواع الملفات
للتأكد أو لمعرفة نوع الملفات في xdg فإننا نستخدم الأمر xdg-mime كالآتي:
xdg-mime query filetype ~/fileName.png
لنفرض أن الملف fileName.png موجود على ملف الهوم و إمتداده png فإن نوعه image/png
يمكنك اختبار الأمر على ملفات ذات امتداد pdf أو odt … إلخ
البرامج الإفتراضية
للإستعلام على عن البرنامج الافتراضي لتشغيل صيغة png نضع الأمر التالي:
xdg-mime query default image/png
الأمر المساعد في الإستعلام هو query ولنفرض أن البرنامج الإفتراضي هو gimp ، ستكون المخرجات بهذا الشكل :
gimp.desktop
ماذا لو أردنا تغيير البرنامج الإفتراضي من gimp الى برنامج nsxiv مثلاً؟ الأمر بسيط، كل ما علينا فعله هو إبعاد كلمة الإستعلام query ونضع الأمر بهذا الشكل:
xdg-mime default nsxiv.desktop image/png
ملاحظة مهمة
ليس كل البرامج لديها نفس طريقة التسمية، فمثلا برنامج kdenlive اسمه org.kde.kdenlive.desktop ولمعرفة كل البرامج المتاحة و اسمائها ستجدها في المسار:
ls /usr/share/applications/
ملف الإعدادات
الملف الذي يتم حفظ الإعدادات للبرامج الإفتراضيه غالباً ما يكون في هذا المسار
$HOME/.config/mimeapps.list
حيث أن $HOME يعني في مجلد الهوم للمستخدم، ويمكن كتابة اسماء البرامج الإفتراضية يدوياً على نفس الملف ولكن من الأفضل استخدام سطر الأوامر لأتمتة تكوين الملف دون عناء.
ملفات البرامج
قد تواجه أحياناً برنامج ما لا يوجد له ملف في المسار :
ls /usr/share/applications/
مثلاً: أردت استخدام برنامج mpg123 لتشغيل ملفات الصوتية البسيط على لينكس، فإنك ستتفاجئ بأنه لا يوجد ملف بالاسم
/usr/share/applications/mpg123.desktop
لذلك إذا أردت صنع ملف mpg123.desktop فتستطيع صنعها بالطريقة التالية
[Desktop Entry]
Type=Application
Name=MP3 Player
Name[ar]=مشغل الوسائط
Comment=program that play MP3 files
Exec=mpg123 -v -C
وتقوم بحفظ الملف في المسار:
/usr/share/applications/
الشرح:
الجملة التي لا غنى عنها هي:
[Desktop Entry]
Type=Application
لأنها توضح بأن الملف لتشغيل تطبيق.
ولتسمية البرنامج
Name=MP3 Player
Name[ar]=مشغل الوسائط
لا بأس في بكتابة المسافة و إذا أردت كتابتها باللغة العربية فإن المتغير Name[ar] يعطيك الخيار لكتابتها بالعربية، وإذا أردت كتابة الإسم باليابانية Name[ja].
ولوصف البرنامج و الذي سيظهر أسفل اسم البرنامج في قائمة البدء أو في برنامج rofi
Comment=program that play MP3 files
وعند أهم جزء و هو التنفيذ ، فإذا كنت تنفذ الأمر لتشغيل برنامج ما بسطر الأوامر.
mpg123 -v -C filename.mp3
فإننا نكتب اسم البرنامج مع الخيارات دون كتابة إسم الملف في المتغير Exec هكذا:
Exec=mpg123 -v -C
يمكن القراءة أكثر حول الموضوع في موسوعة أرش.
تشغيل البرامج
اذا اردت تشغيل البرامج للملفات و جعل حاسوبك يتعرف عليها بطريقة مباشرة بإمتداداتها بدون مدير ملفات مثل ranger، يمكنك استخدام الأمر xdg-open هكذا:
xdg-open fileName.png
سيقوم xdg بتشغيل nsxiv كما وضعناه في المثال السابق، و يقوم بعرض الصورة للملف fileName.png .
ختاماً
قد توفر بيئات سطح مثل جنوم أو كيدي خيارات أسهل لوضع البرامج الإفتراضية و أحياناً يعطينا المعرفة لامتداد الملفات الحقيقي ولكن بسطر الأوامر تعرفنا كيفية إعدادها، وطريقة تغييرها و عملها، وحتى بيئات سطح المكتب تعمل بنفس الطريقة.
