जवाबों:
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
स्पष्टीकरण :
यदि आप grep के लिए मैन पेज देखते हैं तो आप देख सकते हैं कि -vमिलान को उलट देता है, और इसलिए रिटर्न / स्टेटस कोड। -Eइसका मतलब है कि यह एक नियमित अभिव्यक्ति है। [\t ]regex (नियमित अभिव्यक्ति) में "टैब या अंतरिक्ष" का अर्थ है। निम्न स्टार का अर्थ है "टैब या स्पेस 0 या अधिक बार"। अनुगामी "$" का अर्थ है कि यह रेखा के अंत से मेल खाना चाहिए। अंतिम का grepअर्थ है कि ":" में समाप्त होने वाली रेखाएं, किसी भी संख्या में टैब या रिक्त स्थान और फिर "चार्जिंग" और पंक्ति के अंत को grepस्थिति कोड से बाहर निकलना चाहिए । 0. इसका मतलब है कि grep1 तब तक वापस आ जाएगा जब तक कंप्यूटर है चार्ज। ifजब स्थिति कोड 0 है यह की पहली शाखा निष्पादित करेगा,grepexit 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
स्थापना:
Daud:
sudo apt-get install acpi
git clone https://github.com/hg8/battery-full-notification.git
cd battery-full-notification/
chmod +x batteryfull.sh
स्क्रिप्ट को ~/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
उदाहरण अधिसूचना छवि: