Yanıtlar:
acpi
Paketi kurun . Şimdi bunu yerleştirin return0whencharging.sh
ve yürütülebilir yapın:
#!/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"
Bir ses çıkarırsa , pil durumunu izlemek istediğinizde bunu başlatın:
watch --beep return0whencharging.sh
Herhangi bir ses çıkarmazsa veya saatin sağlayabildiğinden daha iyi bir bildirim ve daha iyi bir alarm istiyorsanız, bunu yükleyin libnotify-bin
ve mpv
kullanın:
while return0whencharging.sh; do sleep 1; done; notify-send "Finished charging" && mpv -loop /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga
Açıklama :
Grep için man sayfasına bakarsanız -v
, eşleşmeyi ve dolayısıyla dönüş / durum kodunu tersine çevirdiğini görebilirsiniz . -E
düzenli bir ifade olduğu anlamına gelir. [\t ]
regex (düzenli ifade) içinde "sekmesi veya boşluk" anlamına gelir. Aşağıdaki yıldız "sekme veya boşluk 0 veya daha fazla kez" anlamına gelir. Sondaki "$" satırın sonuyla eşleşmesi gerektiği anlamına gelir. Nihai grep
çizgiler ile biten değil bu araç, bir ":", sekme ya da boşluklar ve "şarj" herhangi bir sayıda satır sonu yapmalıdır grep
durum kodu 0 Bu araçlarla çıkış grep
uzun bilgisayar gibi 1 döndürür Doluyor. if
Durum kodu 0 olduğunda, ilk şubesini çalıştırırgrep
exit 1
grep 0'dan çıktığında ve exit 0
grep sıfırdan farklı olduğunda.
return0whencharging.sh
dosya nerede ? Ya da onu yaratırsam, saklamam gereken belirli bir yer var mı?
Bunu yapacak küçük bir senaryo yazdım:
Senaryo:
#!/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
Kurulum:
Çalıştırmak:
sudo apt-get install acpi
git clone https://github.com/hg8/battery-full-notification.git
cd battery-full-notification/
chmod +x batteryfull.sh
Komut dosyasını ~/bin
klasöre kopyalayın ( neden ~ / bin klasörü? ):
cp batteryfull.* ~/bin
Veya /usr/local/bin
bilgisayarınızdaki tüm kullanıcılar tarafından kullanılabilmesini istiyorsanız kopyalayın :
cp batteryfull.* /usr/local/bin
Ardından batteryfull.sh
komut dosyasını başlangıç uygulaması olarak şu şekilde ekleyin :
İşte kullandığım Crontab
Pilin dolu olup olmadığını bildir (% 100'e eşit)
*/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
Pilin düşük olup olmadığını bildir (% 10'a eşit veya daha az)
*/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
Örnek Bildirim Resmi: