जब मेरे लैपटॉप की बैटरी पूरी तरह से चार्ज हो जाती है तो मुझे सूचना कैसे मिल सकती है?


12

कभी-कभी चार्जिंग पूरी होने के बाद भी मेरा चार्जर लैपटॉप में प्लग रहता है।

क्या मेरी बैटरी चार्ज होने के कारण पॉप-अप संदेश / सूचना प्राप्त करने का एक तरीका है या कोई सॉफ्टवेयर / पैकेज है जो कार्यक्षमता प्रदान कर सकता है?

जवाबों:


7

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 गैर-शून्य होता है।


यदि आप चाहते हैं कि ये आज्ञाएँ समझाई जाएँ, तो बस मुझसे पूछें
Janus Troelsen

मुझे यकीन नहीं है कि यह grep -vE ": [\ t] * चार्ज $" करेगा। क्या आप कृपया आज्ञाओं की व्याख्या कर सकते हैं। धन्यवाद
अंकित ०

जोड़ा स्पष्टीकरण
जानूस ट्रॉल्सन

और यह return0whencharging.shफाइल कहां है ? या अगर मैं इसे बनाता हूं, तो क्या मुझे इसे बचाने के लिए एक विशिष्ट स्थान है?
पार्टो

@AvatarParto: जहां कोई फर्क नहीं पड़ता। नाम तब भी मायने नहीं रखता, जब तक आप इसे हर जगह बदल देते हैं
Janus Troelsen

7

मैंने एक छोटी सी स्क्रिप्ट लिखी है जो ऐसा करेगी:

स्क्रीनशॉट


स्क्रिप्ट:

#!/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स्क्रिप्ट को स्टार्टअप एप्लिकेशन के रूप में जोड़ें :

  • ओपन डैश
  • स्टार्टअप अनुप्रयोगों के लिए खोजें
  • आइकन पर डबल-क्लिक करें
  • Addनिम्न पर क्लिक करें और भरें:

    स्टार्टअप आवेदन बैटरी


0

यहाँ Crontab है कि मैं का उपयोग करें

  1. यदि बैटरी पूर्ण है (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
    
  2. सूचित करें कि बैटरी कम है (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
    

उदाहरण अधिसूचना छवि:

उदाहरण अधिसूचना छवि

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.