29 lines
875 B
Python
Executable File
29 lines
875 B
Python
Executable File
#!/usr/bin/env python
|
|
import os
|
|
import sys
|
|
|
|
discharging = str("discharging")
|
|
|
|
|
|
def alert(id):
|
|
stream = os.popen("cat /sys/class/power_supply/BAT0/capacity")
|
|
output = stream.read()
|
|
battery = int(output.split('\n')[0])
|
|
|
|
stream = os.popen("cat /sys/class/power_supply/BAT0/status")
|
|
output = stream.read()
|
|
status = str(output.split('\n')[0]).lower().strip()
|
|
|
|
if battery <= 10 and status == discharging:
|
|
os.system(f'dunstify -u critical "Low Battery" "Connect Power Adapter" -i /usr/share/icons/Adwaita/symbolic/status/battery-caution-symbolic.svg -r {id} -t 60000')
|
|
else:
|
|
stream = os.popen(f'dunstctl history | grep {id}')
|
|
output = stream.read()
|
|
if output.strip() != '':
|
|
os.system('dunstctl close')
|
|
os.system(f'dunstctl history-rm {id}')
|
|
|
|
|
|
if __name__ == "__main__":
|
|
alert(int(sys.argv[1]))
|