Init
This commit is contained in:
commit
47fa94eaa5
43
Makefile
Normal file
43
Makefile
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
SUDO ?= sudo
|
||||||
|
|
||||||
|
LIB ?= /usr/lib/battery-status
|
||||||
|
SYSTEMD_PATH ?= /usr/lib/systemd/system
|
||||||
|
|
||||||
|
LIB_FILES := battery-common-lib.sh battery-low-alert.sh battery-status-toggle.sh
|
||||||
|
LIB_TARGETS := $(addprefix $(LIB)/,$(LIB_FILES))
|
||||||
|
|
||||||
|
SYSTEMD_FILES := battery-status-toggle.service battery-status-toggle.path
|
||||||
|
SYSTEMD_TARGETS := $(addprefix $(SYSTEMD_PATH)/,$(SYSTEMD_FILES))
|
||||||
|
|
||||||
|
$(LIB):
|
||||||
|
mkdir $@
|
||||||
|
|
||||||
|
$(LIB)/battery-common-lib.sh:
|
||||||
|
$(SUDO) cp ./battery-common-lib.sh $@
|
||||||
|
|
||||||
|
$(LIB)/battery-low-alert.sh:
|
||||||
|
$(SUDO) cp ./battery-low-alert.sh $@
|
||||||
|
|
||||||
|
$(LIB)/battery-status-toggle.sh:
|
||||||
|
$(SUDO) cp ./battery-status-toggle.sh $@
|
||||||
|
|
||||||
|
./battery-status-toggle.service:
|
||||||
|
PREFIX=$(SYSTEMD_PATH) ./battery-status-toggle.service.template
|
||||||
|
|
||||||
|
$(SYSTEMD_PATH)/battery-status-toggle.service: ./battery-status-toggle.service
|
||||||
|
$(SUDO) cp ./battery-status-toggle.service $@
|
||||||
|
|
||||||
|
$(SYSTEMD_PATH)/battery-status-toggle.path:
|
||||||
|
$(SUDO) cp ./battery-status-toggle.path $@
|
||||||
|
|
||||||
|
install: $(LIB_TARGETS) $(SYSTEMD_TARGETS)
|
||||||
|
$(SUDO) systemctl daemon-reload
|
||||||
|
|
||||||
|
enable: install
|
||||||
|
$(SUDO) systemctl enable --now battery-status-toggle.path
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(SUDO) rm -f $(SYSTEMD_TARGETS) $(LIB_TARGETS)
|
||||||
|
rm -f ./battery-status-toggle.service
|
||||||
|
|
||||||
|
.PHONY: install enable clean
|
29
battery-common-lib.sh
Normal file
29
battery-common-lib.sh
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
bat_files="/sys/class/power_supply/BAT0"
|
||||||
|
bat_status=$(cat ${bat_files}/status)
|
||||||
|
capacity=$(cat "${bat_files}/capacity")
|
||||||
|
|
||||||
|
function set_capacity() {
|
||||||
|
if [[ ${capacity} -lt 10 ]]; then
|
||||||
|
cap=0
|
||||||
|
elif [[ ${capacity} -lt 20 ]]; then
|
||||||
|
cap=10
|
||||||
|
elif [[ ${capacity} -lt 30 ]]; then
|
||||||
|
cap=20
|
||||||
|
elif [[ ${capacity} -lt 40 ]]; then
|
||||||
|
cap=30
|
||||||
|
elif [[ ${capacity} -lt 50 ]]; then
|
||||||
|
cap=40
|
||||||
|
elif [[ ${capacity} -lt 60 ]]; then
|
||||||
|
cap=50
|
||||||
|
elif [[ ${capacity} -lt 70 ]]; then
|
||||||
|
cap=60
|
||||||
|
elif [[ ${capacity} -lt 80 ]]; then
|
||||||
|
cap=70
|
||||||
|
elif [[ ${capacity} -lt 90 ]]; then
|
||||||
|
cap=80
|
||||||
|
elif [[ ${capacity} -lt 100 ]]; then
|
||||||
|
cap=90
|
||||||
|
else
|
||||||
|
cap=100
|
||||||
|
fi
|
||||||
|
}
|
17
battery-low-alert.sh
Executable file
17
battery-low-alert.sh
Executable file
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source ./battery-common-lib.sh
|
||||||
|
|
||||||
|
set_capacity
|
||||||
|
|
||||||
|
if [[ "${bat_status}"=="Discharging" ]]; then
|
||||||
|
notify-send \
|
||||||
|
--icon="/usr/share/icons/Adwaita/64x64/status/battery-level-${cap}-symbolic.symbolic.png" \
|
||||||
|
"Discharging" \
|
||||||
|
"AC disconnected"
|
||||||
|
elif [[ "${bat_status}"=="Charging" ]]; then
|
||||||
|
notify-send \
|
||||||
|
--icon="/usr/share/icons/Adwaita/64x64/status/battery-level-${cap}-charged-symbolic.symbolic.png" \
|
||||||
|
"Discharging" \
|
||||||
|
"AC disconnected"
|
||||||
|
fi
|
5
battery-status-toggle.path
Normal file
5
battery-status-toggle.path
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
[Unit]
|
||||||
|
Description=React to battery status change
|
||||||
|
|
||||||
|
[Path]
|
||||||
|
PathModified=/sys/class/power_supply/BAT0
|
10
battery-status-toggle.service.template
Executable file
10
battery-status-toggle.service.template
Executable file
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
cat > battery-status-toggle.service << EOU
|
||||||
|
[Unit]
|
||||||
|
Description=Notify when battery status changes
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=${PREFIX}/battery-status-toggle.sh
|
||||||
|
EOU
|
19
battery-status-toggle.sh
Executable file
19
battery-status-toggle.sh
Executable file
|
@ -0,0 +1,19 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source ./battery-common-lib.sh
|
||||||
|
|
||||||
|
set_capacity
|
||||||
|
|
||||||
|
if [[ ${bat_status}=="Discharging" && ${capacity} -le 10 ]]; then
|
||||||
|
echo "Battery alert - ${capacity}%"
|
||||||
|
notify-send \
|
||||||
|
--icon="/usr/share/icons/Adwaita/64x64/status/battery-level-${cap}-symbolic.symbolic.png" \
|
||||||
|
"Critical battery" \
|
||||||
|
"Only ${capacity}% battery remaining"
|
||||||
|
elif [[ ${bat_status}=="Discharging" && ${capacity} -le 20 ]]; then
|
||||||
|
echo "Battery alert - ${capacity}%"
|
||||||
|
notify-send \
|
||||||
|
--icon="/usr/share/icons/Adwaita/64x64/status/battery-level-${cap}-symbolic.symbolic.png" \
|
||||||
|
"Low battery" \
|
||||||
|
"Only ${capacity}% battery remaining"
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user