Làm cách nào tôi có thể nhận được thông báo khi pin máy tính xách tay của tôi được sạc đầy?


12

Đôi khi bộ sạc của tôi vẫn được cắm vào máy tính xách tay ngay cả sau khi sạc xong.

Có cách nào để nhận thông báo / thông báo bật lên khi pin của tôi đầy do sạc hoặc có phần mềm / gói nào có thể cung cấp chức năng không?

Câu trả lời:


7

Cài đặt acpigói. Bây giờ đặt cái này vào return0whencharging.shvà làm cho nó có thể thực thi được:

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

Nếu echo -e "\a"phát ra âm thanh, hãy bắt đầu điều này khi bạn muốn xem trạng thái pin:

watch --beep return0whencharging.sh

Nếu nó không thực hiện bất kỳ âm thanh hay bạn muốn có một thông báo và báo động tốt hơn so với bất cứ điều gì có thể cung cấp đồng hồ, cài đặt libnotify-binmpvvà sử dụng này để thay thế:

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

Giải thích :

Nếu bạn nhìn vào trang man cho grep, bạn có thể thấy điều đó -vđảo ngược sự phù hợp, và do đó mã trả về / trạng thái. -Ecó nghĩa là nó là một biểu thức thông thường. các [\t ]trong regex (regular expression) có nghĩa là "tab hoặc không gian". Ngôi sao sau đây có nghĩa là "tab hoặc dấu cách 0 lần trở lên". Dấu "$" có nghĩa là nó phải khớp với cuối dòng. Cuối cùng grepcó nghĩa là các dòng KHÔNG kết thúc bằng ":", bất kỳ số lượng tab hoặc khoảng trắng nào và sau đó "sạc" và cuối dòng sẽ grepthoát với mã trạng thái 0. Điều này có nghĩa là grepsẽ trả về 1 miễn là máy tính sạc. Các ifsẽ thực hiện chi nhánh đầu tiên của nó khi mã trạng thái là 0,grepexit 1khi grep thoát 0 và exit 0khi grep tồn tại khác không.


nếu bạn muốn giải thích các lệnh này, chỉ cần hỏi tôi
Janus Troelsen

tôi không chắc grep -vE này ": [\ t] * tính phí $" sẽ làm gì. Bạn có thể vui lòng giải thích các lệnh. cảm ơn
Ankit

thêm lời giải thích
Janus Troelsen

return0whencharging.shtập tin này ở đâu? Hoặc nếu tôi tạo ra nó, có một nơi cụ thể tôi phải lưu nó không?
Parto

@AvatarParto: không quan trọng ở đâu. Tên cũng không thành vấn đề, miễn là bạn thay đổi nó ở mọi nơi
Janus Troelsen

7

Tôi đã viết một kịch bản nhỏ sẽ làm điều đó:

ảnh chụp màn hình


Kịch bản:

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

Cài đặt:

Chạy:

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

Sao chép tập lệnh vào ~/binthư mục ( tại sao thư mục ~ / bin? ):

cp batteryfull.* ~/bin

Hoặc sao chép nó vào /usr/local/binnếu bạn muốn nó có sẵn cho tất cả người dùng trên máy tính của bạn:

cp batteryfull.* /usr/local/bin

Sau đó thêm batteryfull.shtập lệnh dưới dạng một ứng dụng khởi động bằng cách:

  • Mở Dash
  • Tìm kiếm ứng dụng khởi động
  • Nhấp đúp vào biểu tượng
  • Nhấp Addvà điền vào như sau:

    ứng dụng khởi động pinfull

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.