لینوکس و من

۲ مطلب با کلمه‌ی کلیدی «touchpad» ثبت شده است

مولتی تاچ کامل در تاچپدها در لینوکس

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

به طور مثال:
حرکت سه انگشتی به سمت چپ و راست باعث بشه عمل backward و forward اتفاق بیفته. مثلا در Nautilus بین پوشه ها عقب و جلو بریم. یا در مرورگر در صفحات عقب تر و جلوتر بریم.
حرکت سه انگشتی به بالا و پایین باعث بشه بین Tab های مرورگر حرکت کنیم.
حرکت چهار انگشتی به سمت راست، باعث بشه یک Tab جدید باز بشه. چه در مرورگر چه در فایل منیجر.
حرکت چهار انگشتی به سمت چپ باعث بشه Tabی که مشاهده میکنیم close بشه.
و....

برای این منظور چند اسکریپت پیدا کردم. یکی Touchegg که شخصی سازی های زیادی داشت. اما اینقدر در نصبش پیچیدگی داشت که حتی فروم های خارجی هم بعضا موفق نشده بودند. ضمنا موقع نصب به تعداد زیادی بسته منجمله qt4 وابسته است.
دومین اسکریپت چیزی هست به نام xSwipe. اینو من نصب کردم و راه اندازی کردم. اما یکی از دوستان که انجام داد با مشکلات جدی روی تاچپدش مواجه شد. بنابراین بیشتر گشتم تا راه سازگارتری پیدا کنم. البته xSwipe مناسب توزیع هایی است که برای تاچپد خودشون از درایور synaptic استفاده میکنند. در مانجارو فعلی از libinput استفاده میشه و بعد از نصب synaptic دو دستگی پیش میاد و کلا چیز جالبی نمیشه. هر چند که بدون مشکل کار میکنه، اما احساس کردم که libinput تجربه واقعا بهتری بدست میده.
این شد که در AUR چیزی پیدا کردم به نام libinput-gestures که برای libinput نوشته شده و قابلیت مولتی تاچ رو به کمک چندتا ابزار دیگه مثل xdotool و wmctrl در اختیار میذاره. برای نصب در آرچ بیس ها:
1. yaourt -S libinput-gestures
2. sudo gpasswd -a $USER input
و بعد یک بار reboot  یا logout کنید.
اگر میخواید برای هر یوزر تنظیمات خاصی اعمال بشه، باید فایلی به این نام ایجاد کنید و تنظیمات دلخواهتون رو داخلش قرار بدید:
gedit ~/.config/libinput-gestures.conf

تنظیمات ساده و قابل درک هستند. مثلا من برای خودم این طور قرار دادم:
gesture: swipe up        xdotool key super+space #close window
gesture: swipe down 4    xdotool key super+Down #minimize
gesture: swipe right 4    xdotool key ctrl+t #new tab
gesture: swipe left 4        xdotool key ctrl+w #close tab
gesture: swipe up 3        xdotool key ctrl+Tab #switch between tabs
gesture: swipe down 3    xdotool key ctrl+shift+Tab #reverse switch between tabs
gesture: swipe left 3        xdotool key alt+Left #backward
gesture: swipe right 3    xdotool key alt+Right #forward
gesture: pinch in 2        xdotool key ctrl+plus #zoom in
gesture: pinch out 2        xdotool key ctrl+minus #zoom out

هر یک از قسمت ها رو توضیح میدم:
قسمت نارنجی، حرکت رو تعیین میکنه. swipe up یعنی حرکت از پایین به بالا.
قسمت سبز، تعداد انگشت ها رو مشخص میکنه. 4 یعنی 4 انگشتی! برای ۲ انگشتی چیزی نمیشه تعریف کرد، چون با تنظیمات خود سیستم تداخل میکنه.
قسمت زرد، حالت دستور xdotool رو تعیین میکنه.
و قسمت صورتی هم کلیدی است که xdotool آن را میفشارد!
در قسمت خاکستری هم توضیحاتی رو نوشتم. (که البته شما به دلخواه خودتون میتونید هر عملکردی رو برای اون کلیدها منظور کنید)

در واقع این اسکریپت اومده حالت های مختلف تاچپد رو به شورتکات هایی از کیبورد تبدیل کرده. که این توسط خود ما قابل تعیینه. ترفندی که میشه در این مورد به کار برد اینه که شما میتونید در keyboard shortcuts اسکریپت های مختلف خودتون رو و همچنین دستورات پیشفرض خود سیستم رو (مثلا مینیمایز کردن پنجره ها، بستن پنجره ها، حالت overview، کم و زیاد کردن نور مانیتور یا صدا، خاموش کردن مانیتور و ...) رو با شورتکات هایی در کیبورد تنظیم کنید، بعد این کلیدها رو در این تنظیمات وارد کنید!
همون طور که میبینید، مثلا من برای چهار انگشتی به پایین، کلید super+Down تعریف کردم. که این super+Down در keyboard shortcuts پنجره فعال رو مینیمایز میکنه. یا مثلا برای pinch in و pinch out دو انگشتی، میشه کلید super خالی رو تعریف کرد، که این در keyboard shortcuts حالت overview رو باز میکنه. (همون لیست پنجره های باز در گنوم شل). اما من کلید ctrl + plus و minus رو انتخاب کردم تا عمل زوم اتفاق بیفته!

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

بعد از ذخیره فایل تنظیمات، با دستور زیر میتونید این قابلیت رو فعال کنید:
libinput-gestures-setup start


و اگر فایل رو تغییر دادید، یکبار stop کنید و مجدد start کنید. دستور بالا رو در استارتاپ برنامه ها قرار بدید تا موقع بوت لازم نباشه کار اضافه ای بکنید. برای مدیریت دستورهای استارتاپ در گنوم میتونید gnome-session-properties رو از AUR نصب کنید.

یک برنامه گرافیکی هم برای این منظور ساختن، که از AUR قابل نصبه، من نصب کردم، اما عملا هیچ فایده ای نداره. چون فقط حالت های مختلف رو نصب کرده و قسمت command رو باید تایپ کنیم. که خب خودمون هم توی همین فایل تایپ میکنیم دیگه! ضمنان بخاطر ویدیویی که حرکات انگشت ها رو نشون میداد حجم بالایی داشت: gesture-manager-git
لیستی از کلیدهایی که xdotool پشتیبانی میکنه میتونید در اینجا ببینید

نصب Manjaro Linux روی لپ‌تاپ ASUS n501 (ویرایش شد)

این مطلب بیشتر جنبه ی یادآوری برای خودم داره که اگر در آینده دچار مشکل شدم بتونم رجوع کنم. اما کسانی هم که از لپتاپ های جدید سری n شرکت ASUS استفاده میکنند و میخوان که لینوکس روش نصب کنند (در اینجا مانجارو) میتونن از این مطلب استفاده کنند.
ویرایش: متوجه شدم که گویا کلا با nvidia مشکل داره و سایر مدل های لپتاپ ها و حتی دسکتاپ هم این مشکل رو دارند. اما راه حال یکسانه

با روش های موجود iso این توزیع رو روی فلش مموری میریزیم و سعی میکنیم که لپتاپ رو با اون بوت کنیم! در همین ابتدای کار در حین بوت لایو شما با پیام خطای A start job is running for LiveMedia MHWD Script روبرو میشید و مانجارو بالا نمیاد. این پیام مربوط میشه درایور گرافیک لپتاپ که بوسیله mhwd که مختص مانجارو هست مدیریت و نصب میشه. که در اینجا ظاهرا نتونسته درست مدیریت کنه. برای دور زدن این خطا و بوت کردن لایو مانجارو باید موقع بوت روی خط بوت کلید e رو بزنیم و این خط رو به انتهاش اضافه کنیم و بعد با F10 بوت کنیم
xdriver=mesa

حالا مانجارو بالا میاد و ما میتونیم اون رو نصب کنیم. در اینجا فن لپتاپ به شدت کار میکنه، اما جای نگرانی نیست، فرایند نصب به سرعت تموم میشه. وقتی نصب تموم شد، باز هم مانجارو بالا نمیاد.
ویرایش: کاشف به عمل آمد که Bumblebee که مسئول خاموش کردن nvidia است با این قضیه مشکل داره و در حین بوت باعث freez شدن میشه. برای همین باید در خط کرنل در گراب یه تغییراتی رو اعمال کنیم (به رنگ سبز نشون دادم).

برای اینکه این مشکل بر طرف بشه، طبق این ویکی باید در خط کرنل موقع بوت این تنظیمات رو اعمال کنیم (در پایین توضیح دادم)
i915.enable_execlists=0 acpi_backlight=native acpi_osi=! acpi_osi='Windows 2009'


اما با تعیین کردن acpi_osi به این شکل کلیدهای ترکیبی تنظیم نور مانیتور کار نمیکنند. اگر عبارت نارنجی رنگ بالا رو هم در خط کرنل گذاشته باشیم تنظیم نور مانیتور از طریق دستور در ترمینال کار خواهد کرد.
برای این کار دو راه داریم. یکی اینکه xdotool رو نصب کنیم و با این دستور ها نور رو کم و زیاد کنیم (که میتونیم یک کیبورد شورتکات تعریف کنیم مثلا با Super+F5 و Super+F6 :
xdotool key --clearmodifiers XF86MonBrightnessUp
xdotool key --clearmodifiers XF86MonBrightnessDown



یا xorg-xbacklight رو نصب کنیم و با این دستورها کار کنیم:
xbacklight -inc 10
xbacklight -dec 10

ممکنه تاچ‌پد کار نکنه. وارد تنظیمات mouse and touchpad میشید و میبینید که تاچ‌پد شناخته شده، اما کار نمیکنه. برای حل این مشکل، یک بار این دستور رو اجرا کنید، اگر مشکل برطرف شد که شد،‌ اگر نشد باید به کرنل 4.7 آپدیت کنید.
ویرایش: کاشف به عمل اومد که اگر وارد ویندوز بشیم و بعد وارد مانجارو بشیم باید ماژول مربوط به تاچ‌پد رو به شکل زیر غیرفعال/فعال کنیم. در ریبوت های بعدی در خود مانجارو این مشکل وجود نداره. برای اینکه کلا از بابت این مشکل هم راحت بشیم میتونیم طی یک سرویس systemd این کار رو در هر بوت انجام بدیم. حالا چه قبلش توی ویندوز بودیم چه نبودیم.
sudo modprobe -r elan_i2c && sleep 2 && sudo modprobe elan_i2c
موضوع دوم، فونت ریز گراب هست. حالا که حرف از گراب زدیم، باید یه سری چیزها رو هم در این سطح انجام بدیم. به ترتیب اینکار ها رو میکنیم:
sudo gedit /etc/default/grub

فایل پیشفرض گراب باز میشه، این تغییرات رو اعمال میکنیم:
برای رزلوشن این خط رو اضافه میکنیم:
GRUB_GFXMODE="1600x1200"

در خط مربوط به کرنل اینها رو اضافه میکنیم، بصورتی که بشه این:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.enable_execlists=0 acpi_backlight=native acpi_osi=! acpi_osi='Windows 2009' "

و بعد ذیره میکنیم و سپس این دستور رو اجرا میکنیم تا منوی گراب بازسازی بشه:
sudo grub-mkconfig -o /boot/grub/grub.cfg









برای درست کردن فونت کنسول در لپتاپ های با رزولوشن بالا (HIDIP)  terminus-font رو نصب کنید و بعد :
sudo nano /etc/vconsole.conf
با این محتوی:
FONT=ter-v28b




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

نوشته های قبلی که جایگزین شدند در ادامه مطلب وجود دارن.