نمایش ناتیفیکیشن برای پر شدن باتری تا درصدی خاص در KDE
باتریهای لیتیوم یونی اگر به صورت کامل پر شوند از عمر آنها کاسته میشود. بنابراین توصیه میشود که این نوع باتریهای به صورت کامل پر نشوند. برای اکثر پلتفرمها برنامههایی بدین منظور نوشته شده است اما برای پلتفرم لینوکس تا آنجایی که من گشتم، چنین برنامههایی وجود ندارند. پس از کمی گشت و گذار در اینترنت به این اسکابونتو رسیدم. جواب برای لینوکسهایی با دستکاپ gnome نوشته شده است. اما ممکنه شما هم مثل من از kde استفاده کنید. پس این راهحل را برای kde تغییر دادم. تغییر تنها در سیستم ناتیفیکیشن اتفاق افتاده است.
ابتدا بایستی acpi نصب شود. پس با دستور زیر نصب را انجام دهید:
sudo apt-get instal acpi
حالا یک بش اسکریپت ایجاد کنید با هر نامی که دوست داشتید. من با نام full-battery.sh ذخیره کردم. بعد خطوط زیر را در این فایل کپی کنید:
#!/bin/bash
while true
do
export DISPLAY=:0.0
battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'` #get battery level
if on_ac_power; then #check if AC is plugged in
if [ $battery_level -ge 85 ]; then #check if the battery level is over 85%
kdialog --msgbox "Battery is Full" 5
fi
fi
sleep 300 #wait for 300 seconds before checking again
done
شما میتوانید درصد که باتری باید پر شود را تغییر دهید. من روی ۸۵ درصد تنظیم کردم. میتوانید نوع ناتیفیکیشن و پیام ناتیفیکیشن را تغییر دهید. میتوانید زمان چک کردن باتری را تغییر دهید. من روی ۳۰۰ ثانیه قرار دادم.
بعد پرمیژن این فایل را تغییر دهید:
chmod +x full-battery.sh
در نهایت این فایل را در autostart سیستم قرار دهید.
از الان به بعد وقتی باتری به ۸۵ درصد برسد، سیستم به شما یک ناتیفیکیشن نمایش خواهد داد.
در صورتی که مایل به نصب برنامههایی اضافی مانند acpi نیستید، کد زیر به خوبی کار میکند:
#!/bin/bash
while true
do
export DISPLAY=:0.0
battery_level=`cat /sys/class/power_supply/BAT0/capacity`
battery_status=`cat /sys/class/power_supply/BAT0/status`
if [ $battery_status="charging" ]; then
if [ $battery_level -ge 85 ]; then
kdialog --msgbox "Battery is Full" 5
fi
fi
sleep 300
done