مدتها بود که یک اسکریپت دم دستی رو برای راحت تر کردن فانکشنهای پکمن استفاده میکردم. که البته ایرادهای فنی و اسکریپتی زیادی داشت. سر انجام با راهنمایی های چند تا دوست خوب توی گروه های آرچ، دستی به سر و روی اسکریپت کشیدم.
هدف این اسکریپت اینه که یک سری عملکردهای رایج و به درد بخور پکمن رو که بعضا دستورات بلندی میشن و نمیشه به یاد سپرد، به دستورات کوتاه تبدیل کنیم.
ویژگی ها و کارهایی که این اسکریپت میکنه:
با یک udev rule ساده میتونیم به سیستم بگیم وقتی شارژر قطع شد، بکلایت (نور صفحه) رو کم کنه و وقتی شارژر وصل شد نور صفحه رو زیاد کنه.
فایل زیر رو ایجاد کنید و به جای دستوری که من نوشتم، دستور مورد نظر خودتون رو وارد کنید. راه های متعددی برای تغییر بکلایت وجود داره. یکی از اونها brightnessctl
هست.
/etc/udev/rules.d/99-backlight-ac-battery.rules
## ACTION TO DO WHEN ON BATTERY
SUBSYSTEM=="power_supply", ATTR{online}=="0", ENV{POWER}="off", RUN+="/usr/bin/brightnessctl set 30%"
## ACTION TO DO WHEN ON CHARGER
SUBSYSTEM=="power_supply", ATTR{online}=="1", ENV{POWER}="on", RUN+="/usr/bin/brightnessctl set 70%"
و بعد یک بار دستور زیر رو اجرا کنید تا این rule توسط سیستم شناسایی بشه
$ sudo udevadm control --reload-rules
همون طور که میدونید در لینوکس برای دسترسی به درایوها باید اونها رو در یک فولدر mount کرد. ولی جالبه که بدونید میتونیم هر یک از محتویات یک درایو ماونت شده رو هم در جاهای دیگه ماونت کرد! به این کار میگن bind (بخوانید بایند) دو تا فولدر به هم.
یک چیزی شبیه به ایجاد کردن لینک که با دستور ln
انجام میدیم. منتها با یک سری تفاوت های کوچک...
ln
ما یک شورتکات از مقصد میسازیم. درواقع فولدر واقعی وجود نداره. اما در bind ما یک فولدر میسازیم و محتویات یک فولدر دیگه رو داخلش ماونت میکنیم.bindfs
هم bind کرد که نیاز به دسترسی root نداره، ولی خب برای نصب پکیج باید دسترسی root داشته باشید!من در هاردم، چند تا فولدر دارم به نام های Documents, Downloads, Pictures, Videos, Music. یعنی همون هایی که در فولدر home کاربری هم داریم. تا الان با ln یک شورتکات از هر کدوم این ها در فولدر home داشتم. ولی حالا فولدرهای روی هارد رو با فولدرهای متناظرشون در فولدر home کاربر bind کردم. ظاهر قضیه بهتر شده. یعنی دیگه خبری از فلش روی آیکن نیست و انگار واقعا همه چیز در home قرار داره.
توجه: بعد از نوشتن این مطلب متوجه شدم فعلا امکان Trash کردن فایلها در مسیرهای bind شده دستکم در دسکتاپها وجود نداره. ولی در cli با trash-cli میشه اینکار رو کرد. اما بعدا متوجه شدم که با bindfs میشه! پایین تر توضیح دادم.
برای اینکه بدونید چطوری، ادامه مطلب رو ببینید...
فایل منیجر پیش فرض گنوم یعنی Files یا با اسم قدیمیش Nautilus برای فایلهای مختلف، تصاویر thumbnail نشون میده. مثلا برای فیلمها، تصاویر، اسناد و ...
این تصاویر در فولدر ~/.cache/thumbnails
برای هر یوزر ذخیره میشن. این اتفاق خوبی ها و بدی هایی داره. خوبی تصاویر thumbnail اینه که شما بدون باز کردن اون فایل میتونین تا درصدی حدس بزنید محتواش چی هست. و همچنین جلوه بصری هم به فایلها میده.
اما بدی این تصاویر اینه که موقع لود شدن هم زمان میبره و هم مدام هارد درگیر تولید و بازخوانی این تصاویر هست. ما میتونیم تولید این تصاویر رو کلا غیر فعال کنیم یا فقط برای برخی از انواع فایلها غیر فعال کنیم.
در دسکتاپ Gnome میتونید با این دستور تولید این تصاویر رو کلا غیر فعال کنید:
$ gsettings set org.gnome.desktop.thumbnailers disable-all 'true'
اگر مثلا نیاز به تصاویر بندانگشتی برای فایلهای pdf ندارید، میتونید با این روش این کار رو بکنید:
$ gsettings set org.gnome.desktop.thumbnailers disable "['application/pdf']"
لیست کاملی از انواع پسوند فایلها رو میتونید در این لینک پیدا کنید.
در نهایت یک بار هم تصاویر تولید شده قبلی رو حذف کنید تا با تنظیمات جدید تصاویر دوباره تولید بشوند/نشوند:
rm -r ~/.cache/thumbnails
اگر از icon theme های استاندارد استفاده میکنید و قصد دارید آیکن یک فایل یا فولدری رو توی فایل منیجر گنوم یعنی Nautilus تغییر بدید دو راه وجود داره. یک راه اینکه در Properties اون فایل روی آیکنش کلیک کنید و مسیر آیکنی رو که مد نظرتون هست انتخاب کنید.
اما این کار باعث میشه وقتی میزان زوم رو تغییر میدید، آیکن شما بزرگ و کوچک نشه. حتی اگه از فرمت svg هم انتخاب کردید ممکنه به اندازه سایر آیکن ها کوچک نشه موقع zoom out.
یک راه ساده و سریعتری هم از ترمینال هست. به این صورت که شما باید نام آیکن مورد نظرتون رو از فولدر icon theme (مثلا در مسیر /usr/share/icons/Papirus/apps
) که الان تم آیکنِ انتخاب شده ی شما است، پیدا کنید و مشابه الگوی زیر، آیکن فایل یا پوشه خودتون رو تغییر بدید. با این کار مشکل زوم رو هم نخواهیم داشت. مثلا:
$ gio set -t string ~/.bashrc metadata::custom-icon-name org.xfce.terminal-settings
در این مثال ما آیکنی به نام org.xfce.terminal-settings
رو برای فایل ~/.bashrc
انتخاب کردیم. توجه کنید که این نام آیکن باید در تم آیکنی که در حال حاضر فعال هست وجود داشته باشه.
موارد زیادی ممکنه پیش بیاد که لازم داشته باشیم بفهمیم یک فایل مربوط به چه بسته ای است. مثلا در باز کردن یک برنامه خطایی دریافت میکنیم مبنی بر اینکه مثلا cannot load shared object file libvoikko.so.1. یعنی این فایل رو پیدا نکرده...
برای اینکه بفهمیم فایل مورد نظر متعلق به چه بسته ای است که ما نداریمش، در توزیع های مبتنی بر Arch دو راه داریم. یکی استفاده از pacman و یکی استفاده از pkgfile. البته قبلش باید یک بار دیتابیس فایلها رو داشته باشیم. برای بروز رسانی دیتابیس:
$ sudo pacman -Fy
$ pkgfile libvoikko.so.1
$ pacman -F libvoikko.so.1
اما اگر بخوایم بفهمیم یک فایل مشخصی در یک مسیر، مربوط به کدوم یک از بسته های نصب شده است، از سوییچ -Qo
استفاده میکنیم. مثلا:
$ pacman -Qo /usr/share/dbus-1/services/org.gnome.Nautilus.service
حاصل سر و کله زدن های من با لینوکس