Bagaimana saya bisa mendapat notifikasi ketika baterai laptop saya terisi penuh?

12

Terkadang charger saya tetap terhubung ke laptop bahkan setelah pengisian selesai.

Apakah ada cara untuk mendapatkan pesan pop-up / notifikasi ketika baterai saya penuh karena pengisian atau apakah ada perangkat lunak / paket yang dapat menyediakan fungsionalitas?

Ankit
sumber

Jawaban:

7

Instal acpipaket. Sekarang masukkan ini return0whencharging.shdan membuatnya dapat dieksekusi:

#!/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

Jika echo -e "\a"bersuara, mulai ini ketika Anda ingin melihat status baterai:

watch --beep return0whencharging.sh

Jika hal itu tidak membuat suara apapun atau Anda ingin pemberitahuan dan alarm yang lebih baik dari apa pun yang menonton dapat memberikan, menginstal libnotify-bindan mpvdan menggunakan ini sebagai gantinya:

while return0whencharging.sh; do sleep 1; done; notify-send "Finished charging" && mpv -loop /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga

Penjelasan :

Jika Anda melihat halaman manual untuk grep Anda dapat melihat bahwa -vmembalikkan pencocokan, dan karenanya kode pengembalian / status. -Eberarti ekspresi reguler. yang [\t ]di regex (regular expression) berarti "tab atau ruang". Bintang berikut artinya "tab atau spasi 0 atau lebih banyak kali". Trailing "$" berarti harus sesuai dengan akhir baris. Yang terakhir grepberarti bahwa garis TIDAK diakhiri dengan ":", sejumlah tab atau spasi lalu "pengisian" dan ujung baris harus grepkeluar dengan kode status 0. Ini berarti bahwa grepakan mengembalikan 1 selama komputer pengisian daya. The ifakan mengeksekusi itu cabang pertama ketika kode status 0,grepexit 1ketika grep keluar 0 dan exit 0ketika grep ada yang bukan nol.

Janus Troelsen
sumber
jika Anda ingin perintah ini dijelaskan, tanyakan saja kepada saya
Janus Troelsen
Saya tidak yakin apa yang dilakukan grep ini -vE ": [\ t] * pengisian $". Bisakah Anda jelaskan perintahnya? terima kasih
Ankit
menambahkan penjelasan
Janus Troelsen
Dan di mana return0whencharging.shfile ini ? Atau jika saya membuatnya, apakah ada tempat khusus yang harus saya simpan?
Parto
@AvatarParto: tidak masalah di mana. nama juga tidak masalah, selama Anda mengubahnya di mana saja
Janus Troelsen
7

Saya telah menulis skrip kecil yang akan melakukan itu:

tangkapan layar


Naskah:

#!/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

Instalasi:

Lari:

sudo apt-get install acpi
git clone https://github.com/hg8/battery-full-notification.git
cd battery-full-notification/
chmod +x batteryfull.sh

Salin skrip ke ~/binfolder ( mengapa folder ~ / bin? ):

cp batteryfull.* ~/bin

Atau salin ke /usr/local/binjika Anda ingin itu tersedia untuk semua pengguna di komputer Anda:

cp batteryfull.* /usr/local/bin

Kemudian tambahkan batteryfull.shskrip sebagai aplikasi startup dengan:

  • Buka Dash
  • Cari Aplikasi Startup
  • Klik dua kali ikonnya
  • Klik Adddan isi sebagai berikut:

    aplikasi startup yang lengkap

hg8
sumber