اضافه کردن nano به منوی Open With

پیرو پست قبلی، من نیاز داشتم تا فایلهای خاصی رو با ویرایشگر متنی nano باز کنم. تا الان برای این کار در ترمینال دستور nano رو با مسیر مورد نظرم میدادم. مثلا:

$ nano ~/myscripts/test.sh

اما حالا با اضافه کردن nano به منوی open with کافیه وقتی توی فایل منیجر هر جا که هستم روی فایل دبل کلیک کنم تا اون فایل در یک پنجره ترمینال با nano باز بشه.

Screenshot From 2025-07-12 11-09-51.png 

فایل .desktop برای این کار مشابه زیر خواهد بود. قسمت کامند بستگی به این داره که از چه ترمینالی استفاده میکنید. kgx همون console گنوم هست.

~/.local/share/applications/open-with-nano.desktop[Desktop Entry]
Type=Application
Name=Nano
MimeType=application/x-sh;
Exec=kgx -e nano %f
NoDisplay=true
StartupNotify=true
Icon=utilities-x-terminal

اضافه کردن یک آیتم به Open With

وقتی میخوایم یک فایل خاصی رو با یک اپلیکیشن دیگه ای بجز پیشفرض باز کنیم سراغ منوی Open With میریم. اما اگر برنامه مورد نظر ما در لیست نبود چی؟ بعضی از دسکتاپ ها این امکان رو فراهم کردند که بتونیم browse کنیم و برنامه مورد نظر رو پیدا کنیم. اما بعضی دسکتاپ ها امکان browse در اینجا رو ندارند. حالا اگه هدف ما اجرای اون فایل با یک کامند بخصوص باشه چی؟!

داستانی که برای من پیش اومد در مورد فایلهای chm است. همون طور که میدونید اینها فایلهای help ویندوز هستند. اما برخی کتابهای قدیمی بودند که با این فرمت ساخته شده بودند و تبدیل کردن اونها به مثلا pdf کاری بیهوده بود. برنامه های لینوکسی که بتونن فایلهای chm رو باز کنن هم خیلی ضعیف و قدیمی هستن و اغلب دیگه کار نمیکنن. مثل chmsee یا xchm. اما یک نرم افزار اوپن سورس به نام SumatraPDF با حجمی بسیار کم وجود داره که میتونه انواع فایلهای pdf و chm و epub رو به راحتی و به درستی باز کنه. اما متاسفانه فقط تحت ویندوز نوشته شده. ولی با wine به راحتی قابل اجرا است.

ولی اگر سیستم نفهمید، ما چطور بهش بفهمونیم که فایلهای chm رو با برنامه ای از برنامه های wine باز کنه؟! کار سختی نیست... یک فایل با نام دلخواه و با محتوای مشابه در مسیر زیر ایجاد میکنیم:

~/.local/share/applications/wine-chm-opwth.desktop[Desktop Entry]
Type=Application
Name=SumatraPDF
MimeType=application/vnd.ms-htmlhelp;
Exec=wine '/PATH/TO/SumatraPDF.exe' %f
NoDisplay=true
StartupNotify=true
Icon=/PATH/TO/ICON/SumatraPDF.png

حالا بعد از یک بار خروج و ورود دوباره به دسکتاپ آیتم مورد نظر ما در منوی Open With ظاهر شده.

شما میتونید برای فایل تایپ های مختلف کارهای مشابهی بکنید. برای اینکه mimetype صحیح فایلها رو بدونید، سری به این لینک بزنید

تم ساده و شیک برای LibreOffice

همون طور که میدونید آفیس‌سوییت های متعددی وجود دارند که اکثرا سعی کرده اند از آفیس مایکروسافت تقلید کنند و شکل و شمایل اون رو در نرم افزار خودشون پیاده سازی کنند. بعضی از این آفیس‌سوییت ها برای دسکتاپ لینوکس هم توسعه داده میشن و موفق هم هستند. از معروف ترین اونها WPS Office, Collabora Office, OnlyOffice هستند که ظاهری بسیار شبیه به آفیس مایکروسافت دارند.

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

در این پست میخوام یک تم GTK رو معرفی بکنم که رنگ و استایل آفیس مایکروسافت رو داره و ما میتونیم از اون برای LibreOffice استفاده کنیم تا ظاهری "از نظر من" دل‌نشین تری داشته باشیم.

Screenshot From 2025-07-10 22-37-44.jpg برای این کار کافیه این فایل رو دانلود کنید و در پوشه ~/.local/share/themes کاربر خودتون از حالت فشرده خارجش کنید. و بعد LibreOfficeرو با این دستور اجرا کنید. در واقع ما به سیستم میگیم فلان برنامه رو با تم مورد نظر ما اجرا کنه.

برای برنامه writer:

$ GTK_THEME=libmod-writer libreoffice --writer --nologo

برای impress و calc و math و draw هم به جای writer اونها رو قرار بدید. در نهایت هم فایل اجرایی اونها رو ویرایش کنید تا این تغییرات همیشگی باشن. برای اینکار فایل .desktop مورد نظر رو پیدا کنید و در خط مربوط به فرمان بدین شکل عمل کنید. و یا اینکه اینجا رو ببینید.

Exec=env GTK_THEME=libmod-writer libreoffice --writer --nologo %U

 اما ایراد این روش اونجا معلوم میشه که شما وقتی یک بار libreoffice رو مثلا با writer اجرا میکنید، اگر همون موقع impress رو هم اجرا کنید دیگه impress تم قرمز به خودش نمیگیره و همون تم آبی رو به خودش میگیره. یعنی هر کدوم رو که اول اجرا کردید بعدی هم با همون تم باز میشه. کاریش هم نمیشه کرد... (بنابراین نتیجه میگیریم که عکس فوق ساختگی است 😬 )

 اگر LibreOffice رو از Flatpak نصب کردید هم بایستی عبارت GTK_THEME=libmod-writer یا یکی دیگه از تم ها رو بعنوان یک متغیر برای برنامه آفیس تعیین کنید:

$ flatpak override --env=GTK_THEME=libmod-writer --user org.libreoffice.LibreOffice

من راهی پیدا نکردم که برای Flatpak برای هر کدوم از برنامه ها به صورت جدا env تعریف کنم. چون فقط یک libreoffice وجود داره که Flatpak میشناستش. یعنی باید برای همه برنامه های آفیس یک رنگ رو انتخاب کنید.

توجه کنید برای اینکه Flatpak تم شما رو بشناسه فایل تم ها حتما باید در مسیر  ~/.themes باشن. و نه در جای دیگه. 

و نکته آخر اینکه صفحه سازنده این تم اینجا است. من رنگ ها رو کمی تغییر دادم تا همون رنگ های آفیس مایکروسافت باشن و پهنای بوردر رنگی رو هم کمی کاهش دادم. همچنین برای draw و math هم درست کردم که در فایل اصلی نیستن.

مدیریت آیکن های منوی برنامه ها

برای سالها، مدیریت آیکن برنامه ها در منوی دسکتاپ گنوم یا XFCE تحت سلطه alacarte بود. اما قدیمی شد و جای خودشو به Menulibre داد. ولی این هم دیگه قدیمی شد و پا به پای پیشرفت GTK جلو نیومد.

حالا یک ابزار دیگه برای این کار به تازگی متولد شده که شکل و شمایل مدرن برنامه های امروزی GTK رو داره. به نام Main Menu یا libre-menu-editor

photo_2025-07-08_22-48-16.jpg 

برای نصب کردن این برنامه در آرچ کافیه libre-menu-editor رو از AUR نصب کنید. 

اسکریپتی برای کار با pacman

مدتها بود که یک اسکریپت دم دستی رو برای راحت تر کردن فانکشنهای پکمن استفاده می‌کردم. که البته ایرادهای فنی و اسکریپتی زیادی داشت. سر انجام با راهنمایی های چند تا دوست خوب توی گروه های آرچ، دستی به سر و روی اسکریپت کشیدم. 

هدف این اسکریپت اینه که یک سری عملکردهای رایج و به درد بخور پکمن رو که بعضا دستورات بلندی میشن و نمیشه به یاد سپرد، به دستورات کوتاه تبدیل کنیم.

Screenshot from 2024-06-18 12-13-14.png 

ویژگی ها و کارهایی که این اسکریپت میکنه:

  • استفاده از یک AUR Helper به دلخواه خودتون (پیشفرض: yay)
  • استفاده از sudo یا doas به دلخواه خودتون (پیشفرض: sudo)
  • جست و جوی پکیج ها در مخازن رسمی و AUR
  • نصب پکیج (ها) چه از مخازن چه از فایل، با یک دستور ثابت
  • پیدا کردن بسته ای که صاحب یک فایل خاصی است
  • نمایش اطلاعات یک بسته
  • حذف بسته ها با/بدون حذف بسته های وابسته
  • حذف بسته های orphan
  • آپدیت کل سیستم با کمک AUR Helper 
  • یافتن سریعترین میرورها (با reflector)
  • نمایش دپندنسی های یک بسته
  • نمایش بسته هایی که به یک بسته وابسته هستند.
  • نمایش محتوای یک فایل درون فایل فشرده یک بسته tar
  • نمایش لیستی از بسته ها با این ویژگیها:
    • تمامی پکیج ها (نصب شده یا نشده)
    • بسته های نصب شده
    • بسته های orphan
    • بسته هایی که خارج از پکیج منیجر نصب کردیم
    • بسته هایی که هیچ بسته دیگه ای به اونها وابستگی نداره
    • بسته هایی که قابل بروزرسانی هستن
    • قابلیت جست و جوی بسته ها درون این لیست ها
  • ذخیره یک فایل در پوشه کاربر حاوی لیست تمامی پکیج های نصب شده
  • پاک‌سازی کش پکمن
  • آنلاک کردن دیتبایس با حذف فایل db.lck

ادامه مطلب

Cover Image

انتقال یک Arch به هارد جدید

اخیرا یک هارد SSD خریدم و بر آن شدم تا آرچی که روی HDD نصب داشتم منتقل کنم روی SSD. کار سختی نیست، ولی باید چهارچوب قضیه رو توی ذهنتون ترسیم کنین و بدونین که دقیقا قراره چه کاری بکنین. 

سناریوهای مختلف و روش های مختلفی برای این کار وجود داره. اصطلاحا به این کار میگن clone کردن. یعنی شما یک کپی نظیر به نظیر از یک فایل سیستم (درایو) در یک فایل سیستم دیگه می‌سازید. و پیکربندی های مربوط به بوت لودر رو هم انجام میدید و سیستم با دیسک جدید بالا میاد.

تیتروار قراره چه کار بکنیم؟

  • پارتیشن بندی دیسک جدید
  • کلون کردن پارتیشنی که آرچ روی اون نصبه روی پارتیشن یک دیسک جدید.
  • نصب مجدد پکیج کرنل 
  • نصب بوت لودر (مثلا grub) روی دیسک جدید
  • تغییر محتوای fstab بر اساس پارتیشن های جدید

چند سناریو رو مطرح میکنم:

  1. شما یک لپتاپ دارید که فقط یک هارد HDD داره. میخواید اون رو با یک SSD اینترنال SATA تعویض کنید.
    • خب یا باید هر دو هارد همزمان روشن باشن که بتونین اطلاعات رو کلون کنید، مثلا یک باکس خالی هارد اکسترنال دارید که HDD رو میذارید داخلش و SSD رو هم میذارید داخل لپتاپ. یا مثلا لپتاپ شما دو تا پورت SATA داره و میتونید هر دو هارد رو همزمان متصل کنید. (مثلا جای DVD ROM)
    • یا اینکه امکان روشن بودن همزمان هاردها رو ندارید. در این صورت باید اول از HDD اطلاعات رو کلون کنید روی یک فلش مموری، بعد HDD رو در بیارید و SSD رو جایگزین کنید و سپس از روی فلش مموری کلون کنید روی SSD.
  2. شما یک لپتاپ دارید که میخواید HDD رو نگه دارید، و یک SSD از نوع NVMe بهش اضافه کنید و سیستم عامل رو از روی HDD به اون منتقل کنید.

اینکه چه سناریویی با شما همخوانی داره، خدا میدونه! به تعداد آدم ها راه هست برای پارتیشن بندی برای لینوکس! من در این مطلب کلیت ماجرا رو میگم. شما بر اساس شرایط خودتون باید عمل کنید.

ادامه مطلب




حاصل سر و کله زدن های من با لینوکس