حسین موسوی | Hossein Mousavi
حسین موسوی | Hossein Mousavi
خواندن ۳ دقیقه·۵ سال پیش

اضافه کردن Gesture به تاچ پد لپ تاپ در لینوکس

بر عکس مک و ویندوز، لینوکس خیلی از Gesture های خوبی پشتیبانی نمیکنه و فقط به دوبار کلیک کردن رو صفحه ی تاچ پد لپ تاپ که کلیک راست میشه خلاصه میشه ولی من میخوام اینجا یه حرکتی رو بهتون بگم که به کمک اون میتونین با swipe کردن یا pinch کردن یه سری کارا رو انجام بدید. دیسترویی که من استفاده میکنم اوبونتو ۱۸.۰.۴ با دسکتاپ KDE هستش (در اصل دارم از Kubuntu استفاده میکنم!)

photo copyright: howtogeek.com
photo copyright: howtogeek.com

خب این کار رو باید به کمک ابزاری به نام libinput-gesture انجام بدیم که البته یه سری پیش نیاز داره پس اول اون dependency ها رو نصب میکنیم برای این کار تو ترمینال این پکیج ها رو نصب میکنیم:

sudo apt-get install xdotool wmctrl

بعد از این کار حالا باید خود libinput-gesture رو نصب کنیم برای این کار باید اون رو از گیت هاب clone کنیم و نصبش کنیم که به صورت زیر هستش:

git clone https://github.com/bulletmark/libinput-gestures.git cd libinput-gestures sudo make install (or sudo ./libinput-gestures-setup install)

حالا قبل از این که به کانفیگ کردن این ابزار بپردازیم، نکته ای که وجود داره اینه که ما حتما باید یوزری که باهاش کار میکنیم رو عضو گروه input کنیم که میتونیم به شکل زیر این کار رو انجام بدیم:

sudo gpasswd -a $USER input

فقط حواستون باشه که به جای USER اسم یوزر خودتون رو وارد کنین، حالا میتونیم به کانفیگ کردن این ابزار بپردازیم. فایل کانفیگ این ابزار تو مسیر زیر هستش که البته میتونین ازش تو home directory خودتون هم کپی بگیرین و اونجا باهاش کار کنین میتونیم با یه ادیتور مثل Vim یا nano این فایل رو ادیت کنیم:

sudo vim /etc/libinput-gesture.conf

اگه یه تیکه ازین کد رو نگاه کنیم میبینیم که یه سری دستورات خاصی مثل swipe و pinch in داره و همینطور میتونیم تعداد انگشتایی رو که باهاشون swipe میکنیم رو هم تنظیم کنیم که اگه مقدار خاصی وارد نکنیم به صورت دیفالت با هر تعداد انگشت (بیشتر از سه انگشت) اون کار رو بکنیم کار میکنه

gesture swipe up        xdotool key super+Page_Up gesture swipe down      xdotool key super+Page_Down

الان به کمک دستور های بالا اگه من با ۳ یا بیشتر انگشت به سمت بالا swipe بکنم،انگار دکمه هایی رو که تعریف کردم رو فشار دادم تمام شورتکات هایی رو که مدنظرتون هست رو هم میتونین تو تنظیمات خود اوبونتو تعریف بکنین مثلا برای اینکه وقتی به سمت راست یا چپ swipe میکنیم بتونیم تو مرورگر کروم به صفحه ی قبلی بریم میتونیم اینطوری تنظیم کنیم:

gesture swipe left 3        xdotool key alt+left

که تو اینجا تعریف کردیم که حتما باید با سه انگشت swipe بکنیم.

اما نکته ی دیگه این که متاسفانه این ابزار برای اینکه بتونیم بین window هایی که باز کردیم سوییچ کنیم کارایی نداره و ینی نمیتونیم alt+tab رو اینجا تعریف بکنیم که البته برای این هم یه راهی هست!
کافیه یه اسکریپت بنویسیم و بعدش تو فایل کانفیگ libinput-gesture اینطوری تعریف کنیم که وقتی ما این gesture رو انجام دادیم این اسکریپت اجرا بشه. حالا ما میاییم یه اسکریپت مینویسیم که این کار رو (سوییچ کردن بین window ها) رو برامون انجام بده.

اولش باید یه فایل رو بسازیم و اون رو executable بکنیم و بعدش با یه ادیتور اون رو ادیت کنیم و بش اسکریپت زیر رو توش بنویسیم برای این کار اینطوری کار میکنیم:

touch /home/$USER/scripts/.switchNextWindow.sh chmod + x /home/$USER/scripts/.switchNextWindow.sh vim /home/$USER/scripts/.switchNextWindow.sh

و اسکریپتی که برای alt+tab میزنیم به شکل زیر هستش:

#!/bin/sh xdotool keydown alt xdotool key Tab sleep 0.1 xdotool keyup alt

مشابه همین اسکریپت میتونیم برای ترکیب alt+shift+tab رو هم برای سوییچ کردن روی پنجره ی قبلی انجام بدیم و در انتها تو فایل کانفیگ libinput-gesture اینطوری عمل کنیم:

gesture swipe left 3    /home/$USER/scripts/.switchNextWindows.sh

بازم به این نکته توجه بکنین که این اسکریپت رو هرجایی میتونین ذخیره کنین و من صرفا تو home directory خودم ذخیره کردم و اگه شما هم میخوایید اونجا ذخیره بکنید، یادتون نره که به جای USER اسم خودتون رو بذارید!

حالا کار تمومه و تنها کاری که مونده ریستارت کردن سرویس libinput-gesture هستش که به کمک دستور زیر میتونین اون رو انجام بدید

libinput-gestures-setup restart

و به این ترتیب میتونین gesture ها مختلفی رو برای اوبونتو تعریف بکنین و کار کردنتون با اوبونتو خیلی سریع تر و جذاب تر بشه!

linuxubuntuلینوکسابزار
مهندس نرم‌افزار | https://hossein.dev
شاید از این پست‌ها خوشتان بیاید