لینوکس و من

چت صوتی و تصویری Hangouts در لینوکس

امروز بر آن شدم تا گفت و گوی تصویری از طریق Hangouts داشته باشم. برای اینکار باید از مرورگر استفاده کنیم. و باید google-talkplugin نصب باشه. خوشبختانه این پلاگین در AUR موجود هست، اما بدبختانه ما تحریم هستیم و گوگل اجازه دانلود نمیده.
من فایلهای rpm مربوط به هر دو معماری 32bit و 64bit رو دانلود کردم و در هاست شخصی آپلود کردم. و لینک اون رو در PKGBUILD پلاگین جایگزین لینک گوگل کردم.
برای اینکه دیگران هم بتونن استفاده کنند لینک اونها رو در اختیار شما هم قرار میدم. این لینک ها رو جایگزین لینکهای گوگل در فایل PKGBUILD کنید:
http://planet.linuxvaman.ir/uploads/google-talkplugin_current_i386.rpm
http://planet.linuxvaman.ir/uploads/google-talkplugin_current_x86_64.rpm
بعد راحت میتونید اون رو نصب کنید و از طریق مسنجر Hangouts در مرورگرتون چت صوتی و تصویری داشته باشید.
yaourt -S google-talkplugin

وقتی میپرسه آیا PKGBUILD رو ویرایش کنه یا نه، بزنید Y و ویرایشگر مورد نظرتون مثلا gedit رو تایپ کنید و ...

جدا کردن یک تکه از فیلم بوسیله FFMPEG

برای اینکه یک قسمت از یک فایل ویدیویی رو جدا کنیم خیلی راحت میتونیم از ffmpeg استفاده کنیم. مثلا:
ffmpeg -i /PATH/TO/INPUT.mp4  -vcodec copy -acodec copy -ss 00:02:55 -t 00:01:00 /PATH/TO/OUTPUT.mp4
یعنی از دقیقه ۲ و ثانیه ۵۵ (مقدار سبز) به مدت یک دقیقه (مقدار بنفش)، این تکه از فیلم کات بشه و در فایل مورد نظر ما ذخیره بشه.
به همین راحتی. به همین خوشمزگی.

از بین بردن نویز صدای هدفون در درایورهای اینتل

اینجا در مانجارو وقتی سیستم حالت suspend به resume میاد یک نویز عجیب و بد توی هدفون شنیده میشه. برای اینکه این نویز برطرف شه باید ماژول صدا رو یکبار حذف و دوباره بارگذاری کنیم.
ماژول صدای درایور اینتل snd_hda_intel است. با این دستور این ماژول غیرفعال میشه:
sudo rmmod -f snd_hda_intel

حالا با این دستور میبایست مدل درایور اینتلی که دستگاه شما داره مشخص کنیم:
aplay --list-devices

که یه سری توضیحات میاره و عددی شبیه به ALC668 مد نظر ماست. حالا با این دستور ماژول مجددا به شکل صحیح بارگذاری میشه:
sudo modprobe snd_hda_intel ALC668

اما انجام دادن این پروسه بعد از هر resume باید خودکار انجام بشه. بنابراین میایم یه اسکریپت در مسیر /usr/local/bin/ میسازیم:
sudo nano /usr/local/bin/snd_hda_intel-resume

با این محتوی:

#!/bin/bash
rmmod -f snd_hda_intel && sleep 2 && modprobe snd_hda_intel ALC668


و به اون مجوز اجرایی میدیم. (با chmod +x). اما میتونیم این رو تبدیل به یک سرویس systemd بکنیم که بعد از هر resume بصورت خودکار شروع بشه و ما هیچ دخالتی نداشته باشیم:
sudo nano /etc/systemd/system/snd_hda_intel-resume.service

با این محتوی:

[Unit]
Description=Reloading intel sound module after suspend
After=suspend.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/snd_hda_intel-resume

[Install]
WantedBy=suspend.target
و بعد برای فعال کردن این سرویس:
sudo systemctl enable snd_hda_intel-resume.service

باگ درایور اینتل

متاسفانه یک باگ حل نشده در درایور اینتل وجود داره که ابزارهایی مثل totem و parole که با gstreamer کار میکنند توی پخش فیلمهای h.264 مشکل دارند. و با پیام خطای intel_do_flush_locked failed: No such file or directory مواجه میشن.
یک راه اینه که gstreamer1-vaapi رو حذف کنیم. یک راه هم اینه که در پوشه etc/profiles.d/ یک فایل sh ایجاد کنیم با این محتوی:
#!/bin/bash
export LIBGL_DRI3_DISABLE=1
محض یاد آوری بود..

نحوه غیرفعال کردن Guest Account در اوبونتو

حتماً تا به حال به Guest Account در اوبونتو برخوردید و به هر دلیلی فکر کردید که چه خوب می‌شد اگر میتونستم غیرفعالش کنمخوب این همون چیزیه که امروز میخوایم راجع بهش صحبت کنیمبرای غیرفعال کردن اکانت مهمان کافیه فرمان زیر رو در ترمینال وارد کنید:

 sudo gedit /etc/lightdm/lightdm.conf

و خط های زیر رو بهش اضافه کنید:

[SeatDefaults]
user-session=ubuntu 
allow-guest=false

و بعد از ذخیره سازی تغییرات، سرویس lightdm رو ریستارت کنید:

 sudo lightdm restart

حالا حساب مهمان شما غیرفعال شده است و شما میتوانید با زدن Super + L (رفتن به صفحه ی ورود به اکانت) این رو مشاهده کنید.

نوتیفیکیشن های آندروید در گنوم

ابزار بامزه ای به نام nuntius وجود داره که نوتیفیکیشن های آندروید رو در دسکتاپ گنوم بصورت نوتیفیکیشن نشون میده. مثلا اگر براتون از مخاطبی اس ام اس بیاد یا میس‌کال بیفته، هر نوتیفیکیشنی توی آندروید توی گنوم ظاهر میشه



کافیه از AUR این برنامه رو نصب کنید. و بعد روی آندروید هم از گوگل‌پلی نصبش کنید.
برای برقراری ارتباط باید دو دستگاه با بلوتوث با هم pair باشند.

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

فعال/غیر فعال کردن تاچ اسکرین در مانجارو

سلام!
اگر از لپتاپ هایی استفاده میکنید که مانیتور اونها تاچ هست و گاهی فعال بودن این تاچ باعث دردسر میشه، میتونید به راحتی هر چه تمام فعال یا غیر فعالش کنین! احتمالا غیر فعال بودنش باعث مصرف کمتر باتری هم خواهد شد.

در مانجارو xinput برای مدیریت ورودی های کامپیوتر نصب شده. مثل وبکم، کیبور، ماوس، تاچ پد و ... با اجرای xinput لیستی از این موارد رو میبینید:

[amin@ASUS ~]$ xinput
⎡ Virtual core pointer                        id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                  id=4    [slave  pointer  (2)]
⎜   ↳ Elan Touchpad                               id=12    [slave  pointer  (2)]
⎜   ↳ USBest Technology SiS HID Touch Controller    id=10    [slave  pointer  (2)]
⎣ Virtual core keyboard                       id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard                 id=5    [slave  keyboard (3)]
    ↳ Power Button                                id=6    [slave  keyboard (3)]
    ↳ Video Bus                                   id=7    [slave  keyboard (3)]
    ↳ Video Bus                                   id=8    [slave  keyboard (3)]
    ↳ Sleep Button                                id=9    [slave  keyboard (3)]
    ↳ USB2.0 HD UVC WebCam                        id=11    [slave  keyboard (3)]
    ↳ Asus WMI hotkeys                            id=13    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard
همون طور که میبینید تاچ اسکرین لپتاپ با ID شماره 10 مشخص شده که یک چیز ثابتی هست.
حالا با این دستور ها میتونید به راحتی هر کدوم از این ها رو فعال یا غیر فعال کنید:

xinput disable 10
xinput enable 10



اما میشه این عمل رو به یک شورتکات کیبورد نسبت داد. و بصورت toggle درآورد. یعنی با فشردن شورتکات (یا اجرای دستور) چک کنه ببینه اگر تاچ فعاله، غیر فعالش کنه. و اگر غیر فعاله، فعالش کنه.
برای اینکار این رو اجرا کنید تا خرجی شبیه این بگیرید:

[amin@ASUS ~]$ xinput --list-props 10
Device 'USBest Technology SiS HID Touch Controller':
    Device Enabled (138):    0
    Coordinate Transformation Matrix (140):    1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Calibration Matrix (278):    1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Calibration Matrix Default (279):    1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Send Events Modes Available (260):    1, 0
    libinput Send Events Mode Enabled (261):    0, 0
    libinput Send Events Mode Enabled Default (262):    0, 0
    Device Node (263):    "/dev/input/event12"
    Device Product ID (264):    1111, 4300
    libinput Horizonal Scroll Enabled (265):    0
عبارت  Device Enabled (138):    0 مشخص میکنه که اون دیوایس فعاله یا غیر فعال. 0 یعنی غیر فعال. ما از همین در یک اسکریپت استفاده میکنیم:

#!/bin/bash
if [[ $(xinput --list-props 10) == @(*Device Enabled \(138\):    0*) ]]; then
xinput enable 10
else
xinput disable 10
fi
با ذخیره این اسکریپت در یک فایل میتونیم با یک دستور دیوایس مورد نظرمون که اینجا تاچ اسکرین بود فعال و غیر فعال کنیم. و مثلا اون رو با شورت کات Super+F8 اجرا کنیم.

ویرایش جدید:
برای اینکه این اتفاق در حین بوت انجام بشه، باید سراغ systemd بریم. اما چون برای xinput باید Display رو مشخص کنیم باید timer در systemd تعریف کنیم. چون حین بوت هنوز display مشخص نشده. خلاصه... محض یاد آوری خودم..

sudo nano /etc/systemd/system/disable-touch.service

با این محنوی:

[Unit]
Description=Disable Monitor Touch Screen by xinput

[Service]
Type=oneshot
User=amin
Environment=DISPLAY=:0
ExecStart=/usr/bin/xinput disable 10
بجای amin نام کاربری خودتون. و بعد:
sudo nano /etc/systemd/system/disable-touch.timer

با این محتوی:

[Unit]
Description=Runs disable-touch 1min after boot

[Timer]
# Time to wait after booting before activation
OnBootSec=1min
Unit=disable-touch.service

[Install]
WantedBy=multi-user.target
و حالا :
sudo systemctl enable disable-touch.timer

حذف دایرکتوری هایی که خالی نیستند

میتونیم از دستور rm یا rmdir برای حذف فایلها و دایرکتوری ها استفاده کنیم. اما برای اینکه دایرکتوری هایی که خالی نیستند هم بتونیم با این روش حذف کنیم (که ایراد میگیره و میگه این دایرکتوری خالی نیست) میتونیم از سوییچ زیر استفاده کنیم:
rm -rf
و به راحتی حذف میشن

حذف فایل ها با پسوند خاص در همه دایرکتوری ها

ممکنه یک وقت یک فول آلبوم از یکی از این سایت هایی که احساس میکنند صاحب حقوق مادی و معنوی اثر هستند دانلود کنید. علاوه بر اینکه توی هر سوراخی که بتونن اسم خودشون رو مینویسند، ممکنه تعداد زیادی فایلهای txt و url هم توی هر پوشه ای قرار داده باشند.
برای اینکه به راحتی کل این فایلهای مزاحم رو حذف کنیم کافیه در پوشه ی دایرکتوری فول آلبوم این دستور رو اجرا کنیم

find . -type f -name '*.txt' -delete
یا
find . -type f -name '*.txt' -exec rm {} \;
یا
rm -- **/*.txt
که طبیعتا بجای txt میتونید هر چیز دیگه ای قرار بدید. اما مواظب باشید که این رو در دایرکتوری های عقب تر مثل فولدر home اجرا نکنید که... وا مصیبتا!

حذف lag وقتی که در گنوم شل هستیم!

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

nano ~/.drirc

با این محتوی:

<device screen="0" driver="dri2">
        <application name="Default">
                <option name="vblank_mode" value="0"/>
        </application>
</device>
حالا همه چی خیلی روان تر و لذت بخش تر شده.