답변:
acpi
패키지를 설치하십시오 . 이제 이것을 넣고 return0whencharging.sh
실행 가능하게 만드십시오.
#!/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"
소리를 만드는 당신은 배터리 상태를보고 할 때,이를 시작합니다 :
watch --beep return0whencharging.sh
소리가 나지 않거나 시계가 제공 할 수있는 것보다 알림과 더 나은 알람을 원한다면 이것을 설치 libnotify-bin
하고 mpv
대신 사용하십시오.
while return0whencharging.sh; do sleep 1; done; notify-send "Finished charging" && mpv -loop /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga
설명 :
grep 에 대한 매뉴얼 페이지를 보면 -v
일치하는 내용 과 그에 따른 반환 / 상태 코드 를 반대로 볼 수 있습니다 . -E
정규 표현식임을 의미합니다. [\t ]
정규식 (정규 표현식)에 "는 탭이나 공백"을 의미한다. 다음 별은 "탭 또는 공백 0 번 이상"을 의미합니다. 후행 "$"는 줄 끝과 일치해야 함을 의미합니다. 마지막 grep
은 ":"로 끝나지 않는 줄, 여러 개의 탭 또는 공백, "충전"및 줄 끝이 grep
상태 코드 0으로 종료 해야 함을 의미합니다. 이는 grep
컴퓨터가있는 한 1을 반환 한다는 의미 입니다. 충전. 는 if
상태 코드가 0 일 때, 그것의 첫 번째 분기를 실행합니다grep
exit 1
grep이 0을 종료하고 grep이 0 exit 0
이 아닌 경우
return0whencharging.sh
파일 은 어디에 있습니까? 또는 내가 만들면 저장해야 할 특정 장소가 있습니까?
나는 그것을 할 작은 스크립트를 작성했다.
스크립트:
#!/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
설치:
운영:
sudo apt-get install acpi
git clone https://github.com/hg8/battery-full-notification.git
cd battery-full-notification/
chmod +x batteryfull.sh
스크립트를 ~/bin
폴더에 복사하십시오 ( 왜 ~ / bin 폴더입니까? ).
cp batteryfull.* ~/bin
또는 /usr/local/bin
컴퓨터의 모든 사용자가 사용할 수 있도록하려면 복사하십시오 .
cp batteryfull.* /usr/local/bin
그런 다음 다음 batteryfull.sh
을 수행하여 스크립트를 시작 응용 프로그램으로 추가하십시오 .
여기 내가 사용하는 Crontab이 있습니다.
배터리가 꽉 찼을 경우 알림 (100 %)
*/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
배터리가 부족한 경우 알림 (10 % 이하)
*/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
알림 이미지 예 :