สคริปต์ที่กระชับและปรับแต่งได้เพื่อส่งการแจ้งเตือนไปยังเดสก์ท็อป GNU/Linux ของคุณหากระดับแบตเตอรี่แล็ปท็อปของคุณถึงระดับขีด จำกัด ขั้นต่ำหรือสูงสุด
ในการใช้งานและทดสอบใน Debian Running Gnome เท่านั้น แต่ควรทำงานในสภาพแวดล้อมอื่น ๆ และสภาพแวดล้อมเดสก์ท็อป สคริปต์จะตรวจสอบสิ่งจำเป็นและแจ้งให้คุณทราบว่ามีอะไรขาดหายไปเมื่อทำการวิ่งด้วยตนเองครั้งแรก (ดูคำแนะนำด้านล่าง)

สคริปต์นี้บรรลุอะไร?
ฉันอยากจะประหยัดเพนนีสักสองสามปีโดยการถอดปลั๊กสิ่งที่ไม่จำเป็นต้องเสียบเข้าด้วยกัน! ในทำนองเดียวกันผู้ผลิตแล็ปท็อปของฉันยังแนะนำนิสัยการชาร์จ 20/80 เพื่อให้แบตเตอรี่อยู่ในระดับที่เหมาะสม
ฉันได้ทดลองการชาร์จบางส่วนเทียบกับการชาร์จเต็มและ 20/80 ดูเหมือนว่าจะทำให้แบตเตอรี่ของฉันมีอายุการใช้งานที่ดีที่สุด
สภาพแวดล้อมเดสก์ท็อปที่ฉันใช้อยู่ในขณะนี้ดูเหมือนจะไม่มีความสามารถในการแจ้งเตือนของแบตเตอรี่และรุ่นแล็ปท็อปของฉันไม่มีเกณฑ์การเริ่มต้น/หยุดใน SYSFS
โซลูชันที่มีอยู่ส่วนใหญ่จะป่องด้วยคุณสมบัติที่ฉันไม่ต้องการ (หรือขาดความสามารถในการปรับแต่งสูงสุด/การปรับแต่ง) ฉันแค่ต้องการเตือนการแจ้งเตือนให้เสียบปลั๊กหรือลบพลังงานเมื่อประจุแบตเตอรี่อยู่ในระดับที่ฉันต้องการโดยไม่ต้องดูไอคอนสัญลักษณ์ใน GUI อย่างต่อเนื่อง
โคลน repo ไปยังไดเรกทอรีบนพีซีของคุณซึ่งสคริปต์สามารถเข้าถึงได้ใน Userland (ไม่จำเป็นต้องใช้รูท/sudo)
git clone https://github.com/angela-d/battery-max.gitจากนั้นทำการวิ่งด้วยตนเองเพื่อให้แน่ใจว่ามันทำงานได้ (จะตรวจสอบเพื่อให้แน่ใจว่าเส้นทางค้างคาวของคุณเป็นที่ที่คาดว่าและการพึ่งพาจะติดตั้ง - มันจะแจ้งให้คุณผ่านเทอร์มินัลหากมีอะไรผิดปกติ)
เพียงเรียกใช้เส้นทางเต็มเพื่อ check-battery :
/storage/battery-max/check-battery (แทนที่ /storage/battery-max check-battery
แค่ไหน! ตั้งค่า cron เพื่อทำการตรวจสอบโดยอัตโนมัติ
สิ่งนี้จะกระตุ้นสคริปต์เพื่อตรวจสอบสถานะแบตเตอรี่ของคุณในช่วงเวลาที่กำหนดไว้ล่วงหน้าที่คุณตั้งไว้
crontab -e หากคุณต้องการให้สคริปต์ทำงานทุกนาที (แทนที่ /storage/battery-max/ สำหรับเส้นทางท้องถิ่นในระบบของคุณ):
* * * * * /storage/battery-max/check-batteryโปรดทราบว่าหากคุณเลือกที่จะเรียกใช้สิ่งนี้ทุกนาทีคุณอาจต้องการพิจารณาการบล็อก cron จาก/var/log/syslog มิฉะนั้นคุณจะเห็นสแปมดังกล่าว:
28 ธ.ค. 01:50:01 Debian cron [28999]: (Angela) CMD (/ที่เก็บ/แบตเตอรี่-แม่-แม่/การตรวจสอบ
หากคุณต้องการส่งข้อความ cron ไปยังบันทึกของตัวเองและไม่ลบออกทั้งหมด (ซึ่งเป็นตัวอย่างของฉันด้านล่าง) ให้ระบุใน /etc/rsyslog.conf
ในการบีบการบันทึกที่ไร้ประโยชน์นี้คุณสามารถเรียกใช้ (ไม่บังคับ) :
pico /etc/rsyslog.confค้นหา สาย:
* . * ; auth,authpriv.none -/var/log/syslog ต่อท้าย cron เช่นนี้:
* . * ; cron,auth,authpriv.none -/var/log/syslogรีสตาร์ท rsyslog:
service rsyslog restart เปิด check-battery แล้วคุณจะเห็นตัวแปรจำนวนมากที่คุณสามารถปรับให้เหมาะกับความต้องการของคุณ:
# modify the following to suit
BAT_PATH=/sys/class/power_supply/BAT0/
AVAIL= $( cat $BAT_PATH " capacity " )
MIN=70
MAX=80
NOTIFY_TITLE= " Battery Level Threshold Met "
NOTIFY_MSG= " Battery level is at "
ICON= " battery "
FREQ=15คำอธิบายของตัวแปร:
/usr/share/icons/[current theme name] หรือ ~/.local/share/icons/[current theme name]หากคุณต้องการที่จะทิ้งแบตเตอรี่ไว้ใน 24/7 สคริปต์นี้ไม่ได้ใช้กับคุณและใช้ความสามารถในการกำหนดขีด จำกัด ของ TLP อาจเหมาะสมกว่าถ้าคุณใช้แล็ปท็อป IBM หรือ ThinkPad
นอกจากนี้คุณสามารถแก้ไข /etc/UPower/UPower.conf และปรับค่าที่จะส่งการแจ้งเตือนระบบเช่นกัน ( PercentageLow เป็นอัตราที่ส่งการแจ้งเตือนที่สำคัญ):
PercentageLow=10
PercentageCritical=3
PercentageAction=2ไม่มีการแจ้งเตือน?
เพิ่มสิ่งต่อไปนี้ก่อนที่ crons ที่โต้ตอบกับ GUI ของคุณใน crontab -e เพื่อตั้งค่าสภาพแวดล้อมการแสดงผลของคุณซึ่ง cron ไม่สามารถเข้าถึงได้โดยปกติ:
DISPLAY= " :0.0 "
XAUTHORITY= " /home/your_username/.Xauthority "
XDG_RUNTIME_DIR= " /run/user/1000 "(ทั้ง 3 ตัวแปรข้างต้นอาจ/อาจไม่จำเป็นต้องใช้โดย distro - สูตรนี้เป็นสิ่งที่ได้ผลสำหรับฉัน)
ฉันไม่ได้เพิ่มสิ่งนี้ลงในสคริปต์เนื่องจากฉันมียูทิลิตี้ที่กำหนดเองอื่น ๆ ที่ส่งการแจ้งเตือนไปยังเดสก์ท็อปของฉันและไม่รู้สึกว่าจำเป็นต้องเพิ่มสิ่งนี้ในหลายสถานที่