Dizüstü bilgisayarımın pili tamamen şarj olduğunda nasıl bildirim alabilirim?


12

Bazen şarj cihazı şarj işlemi tamamlandıktan sonra bile dizüstü bilgisayara takılı kalır.

Pilim şarj olması nedeniyle dolduğunda bir açılır mesaj / bildirim almanın bir yolu var mı veya işlevselliği sağlayabilecek herhangi bir yazılım / paket var mı?

Yanıtlar:


7

acpiPaketi kurun . Şimdi bunu yerleştirin return0whencharging.shve 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-binve mpvkullanı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 . -Edü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 grepdurum kodu 0 Bu araçlarla çıkış grepuzun bilgisayar gibi 1 döndürür Doluyor. ifDurum kodu 0 olduğunda, ilk şubesini çalıştırırgrepexit 1grep 0'dan çıktığında ve exit 0grep sıfırdan farklı olduğunda.


Bu komutların açıklanmasını istiyorsanız, bana sorun
Janus Troelsen

Bu grep -vE ": [\ t] * şarj $" ne yapacağından emin değilim. Lütfen komutları açıklar mısınız? teşekkürler
Ankit

Ek açıklama
Janus Troelsen

Peki bu return0whencharging.shdosya nerede ? Ya da onu yaratırsam, saklamam gereken belirli bir yer var mı?
Parto

@AvatarParto: nerede olduğu önemli değil. Her yerde değiştirdiğiniz sürece isim de önemli değil
Janus Troelsen

7

Bunu yapacak küçük bir senaryo yazdım:

ekran görüntüsü


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ı ~/binklasöre kopyalayın ( neden ~ / bin klasörü? ):

cp batteryfull.* ~/bin

Veya /usr/local/binbilgisayarınızdaki tüm kullanıcılar tarafından kullanılabilmesini istiyorsanız kopyalayın :

cp batteryfull.* /usr/local/bin

Ardından batteryfull.shkomut dosyasını başlangıç ​​uygulaması olarak şu şekilde ekleyin :

  • Çizgiyi Aç
  • Başlangıç ​​Uygulamalarını Arama
  • Simgeyi çift tıklayın
  • Tıklayın Addve aşağıdaki gibi doldurun:

    başlangıç ​​uygulaması pil


0

İşte kullandığım Crontab

  1. 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
    
  2. 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:

Örnek Bildirim Resmi

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.