لینوکس و من

۹ مطلب در مرداد ۱۳۹۲ ثبت شده است

تغییر 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 میکنیم تا نتیجه رو ببینیم. که موفقیت آمیز بود! با مراجعه به ویکی آرچ میتونید کارهای پیچیده تر و جالب تری هم بکنید.

نصب دسکتاپ mate روی آرچ

mate ادامه ی راه Gnome2 هست که توسط تیم لینوکس مینت ادامه دار شد! جایگزین خوبیه برای کسانی که از گنوم ۳ خوششون نمیاد یا لپتاپشون مثل مال من توانایی اجرای انیمیشن های مسخره و ساده ی گنوم شل رو نداره (اما compiz به زیبایی و راحتی اجرا میشه.
سریع بریم سر اصل مطلب.

۱- عبارات زیر رو داخل فایل etc/pacman.conf/ ذخیره کنید:
[mate] SigLevel = Optional TrustAll Server = http://repo.mate-desktop.org/archlinux/$arch
۲- mate رو نصب کنید:
pacman -Syy
pacman -S mate mate-extras
به نکته ی شماره ۴ مطلب قبلی برید و اون کارها رو انجام بدید.

توضیحات بیشتر در ویکی mate در سایت آرچ

۴- برای اینکه network manager درست کار کنه باید بسته ی خاصی رو نصب کنید. از AUR این بسته رو دانلود کنید. و طبق آموزشی که قبلا گذاشتم اون رو نصب کنید. اما توجه کنید که قبلش در فایل PKGBUILD باید عبارت gnome-bluetooth رو به mate-bluetooth تغییر بدید.

برای نصب compiz دردسر زیادی کشیدم. الان وقتش رو ندارم. شاید بعدا بنویسم.

SLIM یک Login Manager ساده و کاربردی و زیبا

میگن سالی که نکوست از بهارش پیداست... دسکتاپی که نکوست از Login Windowش  پیداست!
من همیشه دنبال تم ورود ساده و شیک برای لینوکس بودم. به تازکی با SLIM یا Simple LogIn Manager آشنا شدم. ساده ترین، سریع ترین و در عین حال یه لاگین‌منیجر با تم های مختلف و زیبا. یه ویژگی خوبی که داره اینه که ارتباطی به این نداره که چه دسکتاپی روی لینوکستون نصب باشه و dependency به دسکتاپ نداره. یعنی مثلا کاری به این نداره که شما KDE دارین یا XFCE یا هر چیز دیگه!
امروز میخوام روش نصب و راه اندازی SLIM در آرچ رو بنویسم.
هشدار: هیچ تضمینی وجود نداره که بعد از اعمال این تغییرات کار درست از آب در بیاد. هر اتفاقی افتاد مسئول خودتونید. من رفرنس های لازم رو لینک دادم.

۱- با این دستور نصبش کنید!
sudo pacman -S slim slim-themes archlinux-themes-slim
۲- با این دستور فعالش کنید:
sudo systemctl enable slim.service -f

۳- حالا باید تنظیمش کنیم. تنظیمات مختلفی میتونید براش اعمال کنید که تنظیمات اولیه اش رو اینجا مینویسم. برای تنظیمات مختلف دیگه به اینجا و اینجا مراجعه کنید.
اول که فایل تنظیمات رو با یه ویرایشگر باز کنید. مثلا:
sudo nano /etc/slim.conf

+ اضافه کردن دسکتاپ های مختلف برای انتخاب موقع ورود
در قسمت Available Sessions دسکتاپ های مورد نظرتون رو اضافه کنید. همون طور که میبینید اولین دسکتاپ به عنوان پیشفرض محسوب میشه:

sessions            mate,xfce,gnome3,kde,cinnamon,razor-qt,openbox,lxde

۴- حالا فایل زیر رو باز کنید تا یه تنظیم کوچولو انجام بدیم. این طوری میگیم که نام کاربری شما هنگام ورود، دسکتاپ فلان رو اجرا کنه. (در اینجا mate)
sudo nano ~/.xinitrc
و عبارت زیر رو برای mate توش قرار بدید و ذخیره کنید.
exec mate-session
حالا میتونید restart کنید.
حواستون باشه که باید یه مقدار تجربه داشته باشید، وگرنه اگه یه جای کار ایراد پیدا کرد و نتونستید دیگه لاگین کنید... وای وای... حتما هم یه کامپیوتر دیگه که به اینترنت وصله کنارتون باشه که در صورت بروز مشکل بتونید سرچ کنید.

در لینک هایی که در بالا گفتم، تنظیمات مختلفی وجود داره که میتونید اعمال کنید. مثلا ورود اتوماتیک، تغییر theme، استفاده از بکگراند همزمان دسکتاپ، و خیلی چیزهای دیگه.

نصب بسته ها از مخازن 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 این برنامه رو به منوها برگردونید.

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