بلاگ پارسی سلمان م.

گنو، تریسکل، نرم‌افزار آزاد، ای‌مکس، اوبونتو، مهندسی عمران، برنامه‌نویسی، گنو/لینوکس، ...

بلاگ پارسی سلمان م.

گنو، تریسکل، نرم‌افزار آزاد، ای‌مکس، اوبونتو، مهندسی عمران، برنامه‌نویسی، گنو/لینوکس، ...

آخرین نظرات

۲ مطلب با کلمه‌ی کلیدی «freedesktop.org» ثبت شده است

xdg-user-dirs

۱۷
آذر

سلام،

در این پست می‌خواهیم به صورت خیلی ساده در رابطه با xdg-user-dirs صحبت کنیم و بگیم که این جزء از freedesktop.org که در GNOME ،KDE و ... پیاده‌سازی شده، چی هست و چه کاربردی داره.


بعضی پوشه‌ها در گنو/لینوکس هستند که خاص هستند به طور مثال پوشه‌های Videos و Downloads و Pictures و Desktop و ...



این پوشه‌ها همان‌طور که در عکس می‌بینید دارای آیکون متفاوتی نسبت به بقیه‌ی پوشه‌ها هستند. این پوشه‌ها توسط بعضی برنامه‌ها برای ذخیره‌سازی فایل‌ها استفاده می‌شن مثلاً اگر در محیط گنوم‌شل (GNOME Shell) دکمه‌ی print screen رو بزنید، به صورت خودکار عکس گرفته شده در پوشه‌ی Pictures ذخیره می‌شه.


حالا فرض کنید که به صورت اتفاقی مثلاً پوشه‌ی Pictures رو پاک می‌کنید. چنان‌چه مجدداً پوشه‌ای به اسم Pictures بسازید، کارایی قبل را نخواهد داشت و خواهید دید که آیکون آن مثل بقیه‌ی فولدرهای عادی خواهد بود. و چنان‌چه دکمه‌ی print screen را بزنید، دیگه عکس‌ها به صورت خودکار در Pictures ذخیره نمی‌شن و در خانه (home) ذخیره می‌شه.


مشخصات این پوشه‌ها در فایلی متنی به اسم user-dirs.dirs قرار دارند که بصورت پیش‌فرض در پوشه‌ی .config ذخیره شده‌اند و برای دسترسی به آن نیازی به دسترسی ریشه (root) نیست. با استفاده از ترمینال نیز می‌توان به آن دسترسی پیدا کرد:

$ cd ~/.config
$ nano user-dirs.dirs

که محتویات آن این چنین است:

# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_VIDEOS_DIR="$HOME/Videos"

حال چنان‌چه گفته شد، به صورت اتفاقی پوشه‌ی Pictures را پاک کنید، محتویات آن به صورت زیر تغییر می‌کند (به خط یکی مانده به آخر توجه کنید)

# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME"
XDG_VIDEOS_DIR="$HOME/Videos"

حال می‌توانیم با تغییر خط یک مانده به آخر، به سیستم بفهمانیم که پوشه‌ی مورد علاقه‌ی ما برای ذخیره‌سازی عکس‌ها در کجا قرار دارد. ما می‌تواینم آن را به مانند قبل کنیم یا به صورت کلی می‌توانیم تمام پوشه‌های مورد نظر برای ذخیره‌سازی فایل‌ها را متناسب با نیازمان تغییر دهیم.


برای اطلاعات بیشتر: http://freedesktop.org/wiki/Software/xdg-user-dirs


منابع: +

  • سلمان محمدی

سلام دوستان عزیز،

توی این پست می‌خوایم در رابطه با مساله‌ای صحبت کنیم که بعضی مواقع بدجور آدم رو قلقلک می‌ده. اون مساله این هست که فرض کنیدآخرین نسخه‌ی اکلیپس رو از وب‌گاهش دانلود کردید. همون‌طور که بهتر از من می‌دونید این برنامه‌ای که دانلود کردید رو نیاز نیست که نصب کنید، فقط کافیه که فایلی که دانلود کردید رو ااستخراج (extract) کنید و سپس فایل eclipse رو اجرا کنید. حال این سوال پیش می‌یاد که:

چجوری فایل اجرایی اکلیپس رو وارد منوی گنوم یا KDE کنم؟ تا بتونم به صورت مستقیم از طریق منوها بهش دسترسی داشته باشم.


برای این کار بایستی یک فایل متنی با محتوای مشخص و پسوند .desktop توی یه جای مشخص ساخته بشه. به این فایل متنی desktop entry  گفته می‌شه (فارسیش می‌شه مدخل رومیزی یا ورودی رومیزی) که توی اون محل قرارگیری فایل اجرایی برنامه و آیکون برنامه و غیره مشخص می‌شه. این شیوه طبق استاندارد freedesktop.org هست که هم گنوم و هم KDE از این استاندارد پیروی می‌کنند.


برای این‌کار طبق معمول از دو طریق می‌شه وارد عمل شد. ۱. با استفاده از ترمینال ۲. با استفاده از ابزار گرافیکی. که ما در این‌جا فقط روش با استفاده از ترمینال رو توضیح می دیم.


فرض می‌کنیم فایل اکلیپس که دانلود کردیم رو از در پوشه‌ی زیر استخراج کردیم:

/home/salman/apps/eclipse


برای شروع باید که ابتدا یک فایل با پسوند .desktop توی آدرس زیر ایجاد کنیم:
/usr/share/applications

اسم این فایل رو مهم نیست که چی می‌ذاریم ولی برای این‌که بعداً دچار سردرگرمی نشیم اسم این فایل رو متناسب با نام نرم‌افزار ایجاد می‌کنیم. فایل مورد نظر رو با دستور زیر می‌تونیم که ایجاد کنیم:

$ sudo nano /usr/share/applications/eclipse.desktop

و سپس محتویات زیر رو درش paste می‌کنیم (چون توی ترمینال هستیم، برای paste کردن باید از ctrl+shift+v استفاده کنیم):

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse IDE
Exec=/home/salman/apps/eclipse/eclipse
Icon=/home/salman/apps/eclipse/icon.xpm
Terminal=false
Categories=GNOME;Application;Development;
و سپس اون رو با دستور ctrl+o ذخیره می‌کنیم. حالا می‌تونیم راحت از طریق منوها به برنامه‌ی اکلیپس دسترسی داشته باشیم.

توضیح خط به خط:

این قسمت برگرفته از راهنمای رسمی گنوم به این آدرس است. (به کوچک یا بزرگ بودن حروف انگلیسی توجه فرمایید).


  • اسم فایل: این فایل متنی (desktop entry) هیچ‌گونه محدودیتی برای این‌که اسمش از چندحرف تشکیل بشه، نداره بنابراین بهتر هست که از علایم اختصاری استفاده نکنید. به طور مثال foocorp-painter-pro.desktop یک اسم فایل خوب ولی fcpp.desktop یا FooCorp Painter Pro.desktop اسم‌ فایل بد است.
  • [Desktop Entry] این بایستی که همیشه در خط اول باشد.
  • Type= در این قسمت نوع مشخص می‌شود که می‌تواند یا Application باشد یا Directory یا Link.
  • Encoding= فایل مورد نظر بایستی که همیشه encode شده‌ی UTF-8 باشد.
  • Name= در این قسمت اسمی قرار می‌گیره که ما می‌خوایم توی منو باشه.
  • Comment= برای توضیحات اضافه‌ای است که می‌خواهیم با آن برنامه را توصیف کنیم
  • Exec= محل قرارگیری فایل اجرایی یا دستوری که در ترمینال وارد می‌کنیم تا برنامه اجرا شود، را باید در این قسمت وارد کنیم. (برای این قسمت می‌توانیم یک سری متغیرها رو تعریف کنیم، که از طریق  لینک بالا قابل دسترس است)
  • Icon= محل قرارگیری آیکون برنامه را مشخص می‌کنیم
  • Terminal= در مقابل این پارامتر یا false قرار می‌گیرد یا true. اگر true باشد یعنی این‌که برنامه در ترمینال اجرا می‌گردد و اگر false باشد، یعنی برنامه در ترمینال اجرا نمی‌گردد.
  • Categories= این قسمت مشخص کننده‌ی این است که برنامه‌ی مورد نظر در چه دسته‌بندی‌هایی قرار می‌گیره.
برای آشنایی با دیگر keyها (کلیدها) و توضیحات بیشتر می‌توانید به آدرس‌های زیر مراجعه فرمایید (به هرکدام از پارامترها یک key  گفته می‌شود مثل: Type, Encoding, Name و غیره.)

  • سلمان محمدی