23 lines
619 B
Bash
Executable File
23 lines
619 B
Bash
Executable File
#!/bin/bash
|
|
|
|
# Find all battery devices (BAT0, BAT1, etc.)
|
|
BATTERY_DEVICES=$(upower -e | grep 'BAT')
|
|
ON_BATTERY=false
|
|
|
|
# Iterate through all detected batteries
|
|
for DEVICE in $BATTERY_DEVICES; do
|
|
# Get the state for the current battery device
|
|
STATE=$(upower -i $DEVICE | grep "state" | awk '{print $2}')
|
|
|
|
# Check if the state is 'discharging' for ANY battery
|
|
if [ "$STATE" = "discharging" ]; then
|
|
ON_BATTERY=true
|
|
break # Exit the loop as soon as one is found to be discharging
|
|
fi
|
|
done
|
|
|
|
# Check the final condition and suspend if true
|
|
if $ON_BATTERY; then
|
|
systemctl suspend
|
|
fi
|