Skrip untuk mengawal kitaran pengisian dan pelepasan bateri komputer riba anda

Mereka yang tahu mengatakan bahawa untuk memastikan bateri lithium komputer riba dalam keadaan baik, ia mesti disambungkan ke arus semasa berada pada 40% pelepasan, dan terputus apabila mempunyai cas 80%.

Banyak pengeluar memasukkan di bios pilihan untuk "menyahaktifkan" aliran arus ke bateri apabila mencapai peratusan tertentu, dan bahawa peralatan hanya menggunakan arus dari saat itu, namun, dalam kes tertentu saya, Lenovo IdeaPad U510 tidak mempunyai pilihan itu.

Saya tidak tahu ada aplikasi di Linux yang melakukan ini di peringkat Perisian, atau yang hanya memberitahu kita apabila bateri mencapai% tertentu, jadi saya memutuskan untuk membuat Skrip kecil yang memberitahu saya ketika saya perlu menyambung dan memutuskan sambungan kuasa.

Keperluan skrip untuk mengawal kitaran pengisian dan pelepasan bateri komputer riba anda

Perkara pertama yang kita perlukan adalah memasang pakej ACPI di komputer kita. Dalam kes saya semasa menggunakan ArchLinux, saya hanya perlu melaksanakan:

$ sudo pacman -S acpi

Mengapa kita memerlukan ACPI? Baiklah, untuk mengetahui status bateri kita. Sekiranya kita melaksanakannya, ia akan mengembalikan sesuatu seperti ini:

leni :: ~ »acpi Bateri 0: Pengosongan, baki 76%, 02:20:07

Perkara seterusnya adalah membuat fail yang akan melaksanakan pemberitahuan, dalam kes saya, saya memasukkannya ke dalam folder ~ / .bateri, dan saya menamakannya bat_notification.sh. Di dalam saya meletakkan perkara berikut:

#!/bin/bash # # -*- PENGEkodan: UTF-8 -*- # Program ini ialah perisian percuma. Anda boleh mengedarkannya semula dan/atau # mengubah suainya di bawah syarat GNU # General Public License seperti yang diterbitkan oleh Free Software Foundation, # sama ada versi 2 Lesen itu atau (pada pilihan # anda) mana-mana versi yang lebih baru. # # Jika anda membuat sebarang pengubahsuaian pada aplikasi ini, # anda mesti sentiasa menyebut pengarang asalnya. # # DariLinux.net CC-BY-SA 2015 # Pengarang: ELAVdesdelinux.net> # Kami mendapat status bateri, tetapi hanya peratusan: BATTERY=`acpi | awk '{print $4}'` # Kami menghantar keadaan kepada fail teks: echo $BATERIA > tmp_bateria.txt # Kami menghapuskan maklumat yang tidak diperlukan daripada fail teks: RESULT=`cut -c 1-2 tmp_bateria.txt` jika [ $ KEPUTUSAN -ge 80 ]; kemudian notify-send --urgency=critical --expire-time=5000 --app-name=Bateri --icon=bateri "Pemberitahuan Bateri" "Putuskan sambungan kuasa, sila" elif [ $RESULT -le 40 ]; kemudian maklumkan-hantar --urgency=critical --expire-time=5000 --app-name=Bateri --icon=bateri "Pemberitahuan Bateri" "Sila sambungkan kuasa" lain $BATTERY > /dev/null fi

Bagaimana Skrip berfungsi untuk mengawal kitaran pengecasan dan pelepasan bateri komputer riba anda

Penjelasan mengenai cara kerjanya ada di dalam, tetapi saya menerangkannya secara ringkas.

Pertama, menggunakan awk Saya hanya mengeluarkan nilai peratus bateri, yang mengembalikan sesuatu seperti % 76. Saya menyampaikan hasil ini ke fail teks untuk kemudian menghilangkan watak yang tidak perlu, hanya meninggalkan nilai angka.

Kami memberikan kebenaran yang diperlukan untuk fail:

$ chmod a+x ~/.bateria/bat_notificacion.sh

Cara ArchLinux menggunakan SistemD dan tidak mempunyai yang lama crontab, saya saya memasang cronie. Sekarang kita mengedit crontab sehingga skrip memeriksa status bateri sepanjang masa.

$ crontab -e

Dan saya tambahkan di dalam:

# Pemeriksaan Bateri * * * * * cd /home/elav/.battery/ && ./bat_notification.sh

Dan voila, apabila peratusan bateri sama atau kurang daripada 40%, atau sama atau lebih besar daripada 80%, saya akan mendapat pemberitahuan seperti ini:

Pemberitahuan Bateri

Dan ini dia .. Sebarang sumbangan yang anda ingin buat, cadangan kod dan lain-lain, anda boleh melakukannya melalui repositori saya di Bitbucket.