انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: رفع مشکل ریست شدن تنظیمات synclient بعد از resume  (دفعات بازدید: 1805 بار)

0 کاربر و 3 مهمان درحال مشاهده موضوع.

آفلاین Midgårdsormen

  • Hero Member
  • *
  • ارسال: 900
  • جنسیت : پسر
احتمالا با دستور synclient آشنا باشید...دستوری که آپشن‌های زیادی برای تنظیمات تاچ‌پد در اختیارتون قرار میده
متأسفانه هنوز یه front-end گرافیکی مناسب که عین آدم کار کنه واسش نساختن
به هر حال،یکی از مشکلات زاغارتی که synclient رو بعضی از سیستما ممکنه داشته باشه،اینه که بعد از suspend کردن سیستم،تنظیماتش میپرن و با هر بار resume،باید دوباره دستوراتو از اول وارد کنید
بالاخره این مشکلو رفع کردم و شاید براتون جالب باشه که شمام بدونید چه‌جوری:

۱- اول از همه،تنظیماتی که برای synclient در نظر گرفتیدو بریزید تو یه فایل و به شکل اسکریپت دربیاریدش
مثلا این اسکریپت منه:

#!/bin/bash
synclient PalmDetect=1 TapButton2=0 TapButton3=0 RTCornerButton=0 RBCornerButton=0 TapAndDragGesture=0
برای اینکه یاد بگیرید با synclient چه‌جوری کار کنید،یه نیگا به خروجی دستور synclient -l بندازید
انقدر ساده‌س که خودتون میفهمید چی به چیه

من اسم این فایلو گذاشتم synsetup.sh و تو دایرکتوری خانگیم ذخیره کردمش
با دستورsudo chmod 777 ~/synsetup.sh قابلیت اجرایی بهش دادم(البته این دستور قابلیتای دیگه‌ای هم بهش میده! ;)اگه نمیخواید،به جای 777 بذارید x+)

حالا میرسیم به اصل کار

۲- این دستوراتو بزنید:

cd /etc/pm/sleep.d
sudo nano 99-synwrk


(synwrk کوتاه‌شده‌ی synclient workaround هستش)
حالا اینو پیست کنید:

#!/bin/bash -e
case "$1" in
        thaw|resume)
export DISPLAY=:0 && sleep 5 && su YOURUSERNAME -c 'sh /home/YOURUSERNAME/synsetup.sh'
          ;;
esac

طبیعیه که جای YOURUSERNAME باید نام کاربری خودتونو بنویسید
حالا با زدن ctrl+x و بعدش y و بعدش Enter ذخیره‌ش کنید و بهش قابلیت اجرایی بدید

میگه در صورت resume شدن سیستم،این کارا رو بکن:
expor DSIPLAY=:0
نمیدونم چی کار میکنه،ولی هر چی هست به X server مربوطه

sleep 5
۵ ثانیه صبر میکنه تا اطمینان حاصل بشه که عملیات resume کامل انجام شده
ممکنه که رو یه سیستم اصلا به این sleep 5 نیازی نباشه،رو یه سیستم لازم باشه که به جای ۵ یه عدد بزرگتر مث ۱۰ رو انتخاب کنید!
معمولا همین ۵ بسه

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

شاید لازم بشه که یه بارم x server رو ریستارت کنید(با لاگین و لاگ‌آوت)...برای من لازم نشد
ضمنا فراموش نکنید که این دستور بلافاصله بعد از resume ممکنه عمل نکنه
به خاطر همون sleep یه چند ثانیه طول میکشه
« آخرین ویرایش: 04 خرداد 1391، 08:28 ب‌ظ توسط Midgårdsormen »