บางครั้งที่ชาร์จของฉันยังคงเสียบกับแล็ปท็อปแม้หลังจากชาร์จเสร็จแล้ว
มีวิธีรับข้อความป๊อปอัพ / การแจ้งเตือนเมื่อแบตเตอรี่ของฉันเต็มเนื่องจากการชาร์จหรือมีซอฟต์แวร์ / แพ็คเกจที่สามารถใช้งานได้หรือไม่?
บางครั้งที่ชาร์จของฉันยังคงเสียบกับแล็ปท็อปแม้หลังจากชาร์จเสร็จแล้ว
มีวิธีรับข้อความป๊อปอัพ / การแจ้งเตือนเมื่อแบตเตอรี่ของฉันเต็มเนื่องจากการชาร์จหรือมีซอฟต์แวร์ / แพ็คเกจที่สามารถใช้งานได้หรือไม่?
คำตอบ:
ติดตั้งacpi
แพ็คเกจ ตอนนี้ใส่ในreturn0whencharging.sh
และทำให้มันปฏิบัติการ:
#!/bin/sh
acpi -V
if cat /proc/acpi/battery/BAT1/state | grep "charging state" | grep -vE ":[\t ]*charging$"; then
exit 1
else
exit 0
fi
หากecho -e "\a"
มีเสียงออกมาให้เริ่มสิ่งนี้เมื่อคุณต้องการดูสถานะแบตเตอรี่:
watch --beep return0whencharging.sh
ถ้ามันไม่ได้ทำให้เสียงใด ๆ หรือคุณต้องการการแจ้งเตือนและการเตือนภัยที่ดีกว่าสิ่งที่นาฬิกาสามารถให้บริการติดตั้งlibnotify-bin
และmpv
ใช้งานนี้แทน:
while return0whencharging.sh; do sleep 1; done; notify-send "Finished charging" && mpv -loop /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga
คำอธิบาย :
หากคุณดูที่หน้า man สำหรับ grepคุณจะเห็นว่า-v
ย้อนกลับการจับคู่ดังนั้นรหัสส่งคืน / สถานะ -E
หมายความว่ามันเป็นนิพจน์ปกติ [\t ]
ใน regex (regular expression) หมายถึง "แท็บหรือพื้นที่" ดาวต่อไปนี้ทำให้มันหมายถึง "แท็บหรือพื้นที่ 0 หรือมากกว่านั้น" ส่วนท้าย "$" หมายความว่าควรตรงกับจุดสิ้นสุดของบรรทัด grep
หมายถึงขั้นสุดท้ายว่าบรรทัดที่ไม่ลงท้ายด้วย ":" จำนวนแท็บหรือช่องว่างใด ๆ แล้ว "ชาร์จ" และจุดสิ้นสุดของบรรทัดควรgrep
ออกจากด้วยรหัสสถานะ 0 ซึ่งหมายความว่าgrep
จะกลับ 1 ตราบใดที่คอมพิวเตอร์เป็น การเรียกเก็บเงิน if
จะดำเนินการสาขาแรกเมื่อรหัสสถานะเป็น 0grep
exit 1
เมื่อ grep ออกจาก 0 และexit 0
เมื่อ grep มีค่าไม่เป็นศูนย์
return0whencharging.sh
ไฟล์นี้อยู่ที่ไหน? หรือถ้าฉันสร้างขึ้นมีสถานที่เฉพาะที่ฉันต้องบันทึกหรือไม่
ฉันได้เขียนสคริปต์เล็กน้อยที่จะทำเช่นนั้น:
สคริปต์:
#!/usr/bin/env bash
while true
do
export DISPLAY=:0.0
battery_percent=$(acpi -b | grep -P -o '[0-9]+(?=%)')
if on_ac_power; then
if [ "$battery_percent" -gt 95 ]; then
notify-send -i "$PWD/batteryfull.png" "Battery full." "Level: ${battery_percent}% "
fi
fi
sleep 300 # (5 minutes)
done
การติดตั้ง:
วิ่ง:
sudo apt-get install acpi
git clone https://github.com/hg8/battery-full-notification.git
cd battery-full-notification/
chmod +x batteryfull.sh
คัดลอกสคริปต์ไปยัง~/bin
โฟลเดอร์ ( ทำไมถึงโฟลเดอร์~ / bin ):
cp batteryfull.* ~/bin
หรือคัดลอกไปที่/usr/local/bin
หากคุณต้องการให้ผู้ใช้ทุกคนในคอมพิวเตอร์ของคุณ:
cp batteryfull.* /usr/local/bin
จากนั้นเพิ่มbatteryfull.sh
สคริปต์เป็นแอปพลิเคชันเริ่มต้นโดย:
นี่คือ Crontab ที่ฉันใช้
แจ้งเตือนหากแบตเตอรี่เต็ม (เท่ากับ 100%)
*/1 * * * * if [ $(cat /sys/class/power_supply/BAT0/capacity) -eq 100 ]; then XDG_RUNTIME_DIR=/run/user/$(id -u) notify-send Hey "Battery Full"; fi
แจ้งเตือนหากแบตเตอรี่ต่ำ (น้อยกว่าหรือเท่ากับ 10%)
*/1 * * * * if [ $(cat /sys/class/power_supply/BAT0/capacity) -le 10 ]; then XDG_RUNTIME_DIR=/run/user/$(id -u) notify-send Hey "Battery Low"; fi
ภาพการแจ้งเตือนตัวอย่าง: