لینوکس و من

۲۱۶ مطلب با موضوع «ترفند» ثبت شده است

تغییر login manager ها

اگر در توزیعی مثل آرچ کار میکنید که روشش این طوریه که تا شما بهش چیزی نگید اون هم حرف نمیزنه، وقتی یک login manager قبلی مثل gdm دارید و حالا میخواید مثلا kdm نصب کنید، باید اینو بهش بگید! آرچ بنده خدا ساکته و مثل چیزایی مثل دبیان سوال زیادی نمی پرسه که کدومو میخواید؟ در آرچ این شمایید که اول حرف میزنید!
ls -l /etc/systemd/system/display-manager.service
sudo rm -r /etc/systemd/system/display-manager.service
sudo systemctl enable kdm.service

فعال کردن دکمه های مدیای fn برای انواع پلیر ها

در لپتاپ ها با کلید Fn میتونیم مدیا پلیرها رو کنترل کنیم: play, pause, stop, next, previous
در KDE دیدم مدیاپلیرهاش با این کلید سازگار نیستند. البته به جز Amarok. من از Amarok خوشم نمیاد، خود KDE یه چیز ساده و کوچولو داره به نام juk. برای اینکه خیلی از مدیاپلیرها رو با این کلید Fn سازگار کنیم کافیه بدونیم که... نه ولش کن، لازم نیست! شما این فایل رو دانلود کنید. اسکریپت ها رو ازش خارج کنید و مطمئن شید که مجوز اجرا شدن داشته باشن. بعد اونها رو در پوشه ی usr/bin/ یا هرجایی که میخواید کپی کنید.
حالا با اجرای هر کدوم از اونها در ترمینال میبینید که کار میکنند. بنابراین به قسمت keyboard shortcuts برید و برای تک تک اونها شورتکات های مربوط به خودشون رو با کلید Fn ایجاد کنید.
من با vlc و juk امتحان کردم کار کردند! البته vlc یه ایرادی داره. اونم اینکه اسکریپت playpause درست براش کار نمیکنه. من با vlc فقط فیلم میبینم، آهنگ گوش نمیدم، بنابراین این موضوع برام مهم نیست. اما اگه شما آهنگ هم باهاش گوش میدید میتونید این کار رو بکنید:
اسکریپت playpause رو باز کنید و عبارت PlayPause رو به Play تغییر بدید. و اسکریپت stop رو هم باز کنید و عبارت Stop رو به Pause تغییر بدید. حالا با یک کلید (کلید stop ) میتونید vlc رو pause کنید. و با یک کلید دیگه (کلید pause/play) میتونید vlc رو play کنید. در صورتی که در حالت طبیعی باید بتونید با یک کلید هم play کنید هم pause که vlc این رو نمیفهمه. باید جدا جدا بهش گفت. اما juk رپرتی فهمید!
من که خیلی دنبال این قضیه بودم. امیدوارم شما هم استفاده برده باشید.
نکته: ببینید روی دسکتاپ های دیگه هم جواب میده؟ دلیلی نداره جواب نده. دوست داشتید نتیجه رو توی کامنت بذارید.

نمایش درست برنامه های GTK در KDE

دوباره میخوام مدتی با KDE کار کنم. چون گنوم‌شل با لپتاپ من سازگار نیست و بسیار کنده و mate هم اوضاعش خیلی خیته و همچنان بعد از این همه آپدیت پر از ایراده.
البته با هزار زور و زحمت از مخازن آرچ تونستم دسکتاپ گنوم ۲ رو نصب کنم. موفقیت آمیز هم بود اتفاقا. اما یه ایراد نابخشودنی داشت که نمیشد رفعش کرد. اینکه پنل مدام قاطی میکرد و آیکن ها رو نشون نمیداد. اپلت ها رو خیلیهاشون رو اد نمی کرد... اما بقیه چیزای گنوم خوب بودن. و همچنین بیم آن می رفت که با آپدیت سیستم تمام این ها به هم بریزه. هرچند میشه از آپدیت شدن یه سری بسته ها جلوگیری کرد، اما کافیه یه بسته ی ریزه میزه رو یادتون رفته باشه به لیست ممنوعه اضافه کنید. اون وقت بیا و درستش کن... اینکه گفتم چه کاریه، بریم ببینیم KDE به کجا رسیده...
بعد از ۵۰۰ و اندی مگابایت دانلود، KDE با سلام و صلوات راه اندازی شد. خوشبختانه compiz توش کار میکنه. (من از افکت های Kwin خوشم نمیاد). اما ایرادی که داره اینه که برنامه های GTK  (مثلا GIMP) با تم خودشون باز میشن و این طوری دوگانگی بوجود میاد. راه حلش در KDE 4.10 در آرچ اینه که میگم:

این سه تا بسته رو نصب کنید:
sudo pacman -S oxygen-gtk2 oxygen-gtk3 kde-gtk-config

آنگاه در تنظیمات تم kde برید میبینید که GTK اضافه شده. و در اونجا تم برنامه های GTK رو به oxygen-gtk تغییر بدید. البته این به این شرط میسر هست که تم شما در KDE اکسیژن باشه تا باز دوگانگی پیش نیاد. به نظر من که تم قشنگیه.

Cairo Dock و اپلت Application list در دسکتاپ mate

cairo dock یک برنامه ی خیلی خوب برای داشتن یک dock در دسکتاپ های مختلف لینوکسی هست. در دسکتاپ mate چون خیلی از اسامی تغییر کردن، اپلت applications list کار نمیکنه. برای برطرف کردن این مشکل، به جای اجرای دستور cairo-dock در startup applications این عبارت رو قرار میدیم:
env XDG_CONFIG_DIRS=/etc/xdg cairo-dock

بازی با سرویس ها (اجرای دستورات شما)

سلام.
هدف اصلی: خاموش کردن nvidia ion هنگام boot و بعد از resume
هدف فرعی ۱: اجرای اسکریپت مخصوص خاموش کردن nvidia ion در آدرس usr/bin/disablecard/
هدف فرعی ۲: افزایش زمان باتری و کاهش دمای سیستم!

خیلی گشتم تا این رو در آرچ پیدا کنم. توی دبیان خیلی راحت فایل اسکریپت رو میذاشتیم در یک فولدر خاصی و اون اسکریپت بعد از resume اجرا میشد. برای boot هم با crontab این کار رو انجام میدادم. اما در آرچ اینگونه نیست...
آرچ از systemd  استفاده میکنه. این ابزاریه برای کنترل سرویس های آرچ. (روی لینکش کلیک کنید تا متوجه بشید). برای اینکه اتفاق خاصی در زمان خاصی بیفته، باید اون رو تبدیل به یک سرویس کنیم و بدیمش به آرچ که بفهمه و اجراش بکنه. من زیاد جزئیات و عمق مطلب رو نمیدونم. صرفا با خوندن ویکی و چند بار آزمون و خطا موفق شدم. شما میتونید این کار رو تعمیم بدید و هر کاری که دوست دارید با سیستمتون انجام بدید.

فایل disablecard یک اسکریپت مخصوص خاموش کردن nvidia ion در لپتاپ منه (asus 1215n) که اون رو در usr/bin/ قرار دادم که با دستور sudo disablecard به طور دستی اجراش میکردم تا کارش رو انجام بده. برای اینکه این اتفاق رو تبدیل به یک سرویس کنم این کارها رو کردم.

۱- یک فایل به اسم دلخواه nvidia-off.service در این فولدر میسازیم usr/lib/systemd/system/ و این محتوی رو توش میریزیم!
[Unit]
Description=Turns off nvidia ion
After=slim.service

[Service]
ExecStart=/usr/bin/disablecard
Type=oneshot

[Install]
WantedBy=slim.service

توضیح اینکه After یعنی اینکه این سرویس بعد از اجرای چه سرویسی باید اجرا بشه؟ من لیستی از سرویسهایی رو که هنگام بوت اجرا شده بودند با دستور systemctl list-unit-files --type=service پیدا کردم. و دیدم مثلا کدوم سرویس enabled هست. گفتم بعد از اون این اتفاق بیفته! شما هم میتونید به دلخواه خودتون ببینید سیستمتون چطوری تنظیم شده.
۲- برای resume هم یک فایل به اسم دلخواه nvidia-off-resume.service در همون فولدر میسازیم و این محتوی رو توش میریزیم:
[Unit]
Description=Turns off nvidia after resume
After=suspend.target

[Service]
Type=oneshot
ExecStart=/usr/bin/disablecard

[Install]
WantedBy=suspend.target
۳- حالا دستورات زیر رو یکی یکی اجرا میکنیم تا کارمون تکمیل بشه:

sudo systemctl daemon-reload
sudo systemctl enable nvidia-off-resume
sudo systemctl enable nvidia-off
و در پایان یک بار reboot میکنیم تا نتیجه رو ببینیم. که موفقیت آمیز بود! با مراجعه به ویکی آرچ میتونید کارهای پیچیده تر و جالب تری هم بکنید.

نصب بسته ها از مخازن AUR برای توزیع Arch

همون طور که میدونید مدتیه دارم توزیع Arch رو تست میکنم. آرچ لینوکس. توزیع آرچ شیوه ی جالبی برای مدیریت بسته هاش داره. چند تا مخزن اصلی داره و یک مخزن مخصوص کاربران. در این مخزن کاربران که AUR نامیده شده، بسته هایی قرار میگیرن که توسط کاربران تولید یا ویرایش شدن. این مخازن به طور پیش فرض در مخازن آرچ وجود ندارن و برای استفاده از اونها باید روش خاص خودشون رو استفاده کنید. اسکریپت های متعددی برای اینکار ساخته شده. در این لینک تعداد زیادی از اونها رو میبینید. که هر کدوم قوانین خاص خودشون رو دارن. هر کدوم رو که بخواید میتونید امتحان کنید. من yaourt رو انتخاب کردم. دلیل خاصی هم نداشت. توی گوگل سرچ کردم!
اما پس از مدتی متوجه شدم به دلیل اینترنت احمقانه ی ایران، دسترسی به بعضی پکیج ها امکان پذیر نیست. و باید راه دیگه ای پیدا کرد! خب، کار که نشد نداره، راهش هست:

۱- به سایت مخزن AUR برید و پکیج مورد نظرتون رو سرچ کنید و نسخه ی مربوط به CPU خودتون (۳۲ یا ۶۴) پیدا کنید. مثلا من همین yaourt رو براتون میگم. از سمت راست صفحه، Download Tarbal رو کلیک کنید و فایل رو دانلود کنید.

۲- با ترمینال وارد پوشه ای بشید که فایل دانلود شده. و اون رو از حالت فشرده خارج کنید:
tar -xzf yaourt.tar.gz
۳- دستور زیر رو اجرا کنید تا بسته ی اصلی دانلود بشه و dependencyهای بسته هم دانلود بشن.
makepkg -s
۴- حالا با خود pacman میتونید بسته ای رو که تولید شده نصب کنید:
pacman -U /path/to/package

مدیریت برنامه های startup در گنوم شل

برای مدیریت برنامه هایی که هنگام لود شدن دسکتاپ قراره که اجرا بشن، در گنوم ۳، دستور زیر رو در ترمینال یا یک پنجره ی run اجرا کنید:
gnome-session-properties
این برنامه در گنوم-شل پنهانه، با این دستور اجرا میشه.
البته میتونید با alacarte این برنامه رو به منوها برگردونید.

نکته ی خاصی نبود، صرفا این رو نوشتم که در آینده بهش رجوع کنم!

چینش دلخواه دکمه های titlebar در gnome3

چند وقت پیش مطلبی رو تحت عنوان چینش دلخواه دکمه های titlebar در metacity نوشته بودم. برای اینکه این کار رو در گنوم۳ هم انجام بدیم روش مشابهی وجود داره. با این تفاوت که مسیری رو که در تنظیمات باید طی کنید این هست:

org>gnome>shell>overrides

تغییر زبان در گنوم شل ۳.۸ بوسیله Alt + Shift

ما عادت کردیم که با کلید های Alt+Shift زبان کیبرد رو تغییر بدیم. کلید پیشفرض در گنوم شل ۳.۸ Win+Space هست! و در تنظیمات کیبرد نمیشه تغییرش داد به Alt+shift!  و حتی tweak tools هم در این رابطه کمک کننده نبود. برای اینکه به خواسته ی خودمون برسیم، dconf editor رو باز کنید و این مسیر رو دنبال کنید:

org->gnome->desktop->input-sources
و مقدار xkb options رو به این عبارت تغییر بدید:
['grp:alt_shift_toggle']

یا راحت تر،‌ این رو در ترمینال اجرا کنید:

dconf write /org/gnome/desktop/input-sources/xkb-options "['grp:alt_shift_toggle']"

تق صفحه بعد!

یه افزونه جالب برای فایرفاکس پیدا کردم. مخصوص کسایی که حوصله ندارن دو ساعت ماوس رو ببرن روی عدد صفحه های بعدی از یک سایت. وقتی به آخر صفحه اسکرول میکنین، با زدن space، اون صفحه میره صفحه ی بعدی. روی خیلی از سایت ها امتحان کردم جواب داده. اسم افزونه هست: space next