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

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

ممکنه براتون پیش بیاد که بخواید وقتی مثلا به مدت سه دقیقه از کامپیوترتون استفاده نکردید یک اتفاقی بیفته. مثلا من همیشه یادم میره کلید Numlock رو خاموش کنم، و از اونجایی که در کیبورد من عدد 1 در حالت Numlock خاموش مساوی است با End این موضوع خیلی روی اعصابه، و هر وقت که میزنم End تایپ میکنه 1. بنابراین میام به سیستم میگم هر وقت به مدت ۵ ثانیه کسی بهت دست نزد numlock رو خاموش کن. خیلی کارها میشه با این اسکریپت کرد...

البته این مسلزم اینه که از xorg برای رابط گرافیکی دسکتاپ استفاده کرده باشید و نه wayland 😞

اول از همه پیش نیاز های این اسکریپت رو نصب میکنیم. در توزیع خودتون اینها رو باید نصب کنید: sdotool , xprintidle , wmctrl و بعد اسکریپتی که در انتهای مطلب اومده رو در یک فایل با پسوند py ذخیره میکنیم و مجوز اجرایی به این اسکریپت میدیم.

ادامه مطلب

پخش آلارم هنگام low battery

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

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

دو راه برای اینکار هست. یکی اینکه از udev استفاده کنیم، که در ویکی آرچ توضیح داده شده. اما من استفاده کردم و موفقیت آمیز نبود. ظاهرا هر لپتاپی اینجور نیست که اطلاعات باتری رو به udev بفرسته. راه دوم که کار راه بندازه و زیادم بد نیست استفاده از cron است. یعنی یه اسکریپتی بنویسیم که هر مثلا ۶ دقیقه درصد باتری رو چک کنه و اگه کمتر از مقدار تعیین شده بود کاریو که ما میخوایم انجام بده.

اسکریپتی که در ویکی آرچ نوشته بود و من هم کمی شخصی سازیش کردم در زیر میبینید:

#!/bin/sh
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
acpi -b | awk -F'[,:%]' '{print $2, $3}' | {
  read -r status capacity
  if [ "$status" = Discharging -a "$capacity" -lt 15 ]; then
      logger "Critical battery threshold"
      /usr/bin/notify-send -u critical --hint int:transient:1 -i "/usr/share/icons/hicolor/256x256/apps/gnome-power-manager.png" "Battery at $capacity%" "Battery percent is too low. Connect AC Adapter." && paplay /home/amin/Programs/lowbat.mp3
  fi
echo "Battery has $capacity% capacity"
}

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

برای مشخص کردن درصد باتری از acpi استفاده شده. و برای پخش صدا از sox و برای نمایش نوتیفیکیشن از notify-osd. بنابراین هر کدوم رو که ندارید نصب کنید.

در خط دوم اسکریپت (رنگ زرد) برای اینکه cron بتونه پیامهای notify-osd رو اجرا بکنه،‌ باید یه همچین چیزی در اسکریپت باشه. عدد 1000 همون user id نام کاربری شماست که باید با دستور echo $UID ببینید چنده. که معمولا اگه اولین کاربری باشید که در لینوکستون ساختید 1000 هست.

محتوای پیام رو هم که خودتون میتونید ویرایش کنید. مقدار 15 هم که با رنگ سبز مشخص شده همون درصدی است که تعیین کردیم که اگر پایین تر از اون بود هشدار داده بشه. به دلخواه خودتون میتونید مقدارش رو مشخص کنید.

اسکریپت بالا رو جایی ذخیره کنید و اون رو با روشی که بلد هستید به cron بسپارید. بازه های زمانی ۶ دقیقه فکر میکنم مناسب باشه.

کتاباتو گوش کن

شاید شما هم بارها و بارها خواستین یه مطلب، کتاب یا متن رو بخونین ولی حجم زیادش و تنبلی و نداشتن حوصله و ... مانعش شده. میخوام یه دستور نسبتا (هنوز جا داره تا تقویت بشه) کاربردی بگم که فانه و متن فارسی رو تبدیل به صوت میکنه.

espeak  -v fa -f mytest -w mytest.mp3

این دستور پیش فرض روی اکثر توزیع ها نصب شده ولی اگه نصب نبود خیلی راحت میتونید با جستجو در نت نصب کنین

بیایم خط بالا رو نگاه کنیم: سوییچ -v اشاره به نوع صدا داره ک فارسی انتخاب شده، سوییچ -f اشاره به فایلی که متن فارسی داره میکنه و سوییچ آخرم اشاره به خروجی میکنه. برا اطلاعات بیشترم میتونین منوال دستور رو بخونین ک کامل هم هست(با زدن دستور man espeak)

نمایش ترجمه در نوتیفیکیشن!

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

یک ترفند بسیار جالب و کاربردی برای استفاده از گوگل ترنسلیت. میتونیم با این اسکریپت ترجمه ی هر لغت یا جمله ای که میخوایم رو در نوتیفیکیشن داشته باشیم! البته در xorg و نه در wayland

ادامه مطلب

استفاده از cmatrix برای یک سرگرمی!

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

کاری نداره. cmatrix رو نصب کنید و بعد اجراش کنید. برای اینکه جالبتر هم بشه میتونیم از این دستور برای باز کردن ترمینال گنوم در حالت فول اسکرین و اجرای cmatrix پس از اون استفاده کنیم. و این دستور رو به یک شورتکات کیبورد بدیم، مثلا Super+X و با Ctrl+c یا q متوقف میشه.

برای دسکتاپ گنوم با دستور زیر میتونید یک ترمینال در حالت فول اسکرین باز کنید که cmatrix رو اجرا میکنه.

gnome-terminal --window --full-screen --profile cmatrix -- /bin/sh -c 'sleep 0.1s; cmatrix'

البته قبلش یک پروفایل ترمینال به نام cmatrix بسازید که پس زمینه و palete سیاه داشته باشه. 

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

هر وقت که خواستید اسکریپت رو متوقف کنید کافیه کلید Q رو بفشارید! اگر شخص دیگه ای از داستان خبر نداشته باشه با دیدن این صحنه فکر نکنم جرأت کنه به چیزی دست بزنه 

فعال/غیرفعال کردن touch screen در Manjaro

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

در مانجارو 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

ادامه مطلب




حاصل سر و کله زدن های من با لینوکس