Câu trả lời:
Cài đặt acpi
gói. Bây giờ đặt cái này vào return0whencharging.sh
và 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-bin
và mpv
và 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. -E
có 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 grep
có 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ẽ grep
thoát với mã trạng thái 0. Điều này có nghĩa là grep
sẽ trả về 1 miễn là máy tính sạc. Các if
sẽ thực hiện chi nhánh đầu tiên của nó khi mã trạng thái là 0,grep
exit 1
khi grep thoát 0 và exit 0
khi grep tồn tại khác không.
return0whencharging.sh
tậ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?
Tôi đã viết một kịch bản nhỏ sẽ làm điều đó:
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 ~/bin
thư mục ( tại sao thư mục ~ / bin? ):
cp batteryfull.* ~/bin
Hoặc sao chép nó vào /usr/local/bin
nế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.sh
tập lệnh dưới dạng một ứng dụng khởi động bằng cách: