#!/bin/bash
# configure an "always-on" power profile for laptops and desktops
# Check for battery presence
has_battery=$(pmset -g batt | grep -c 'Battery Power')
# Set display sleep to 30 minutes when on AC
echo "Setting display sleep to 30 minutes when on AC..."
if sudo pmset -a displaysleep 30; then
echo "Display sleep setting updated successfully."
else
echo "Failed to update display sleep setting." >&2
exit 1
fi
# Set display sleep to 10 minutes when on battery
echo "Setting display sleep to 10 minutes when on battery..."
if sudo pmset -b displaysleep 10; then
echo "Display sleep setting updated successfully."
else
echo "Failed to update display sleep setting." >&2
exit 1
fi
# Set hard drive sleep to 60 minutes when on AC
echo "Setting hard drive sleep to 60 minutes when on AC..."
if sudo pmset -a disksleep 60; then
echo "Hard drive sleep setting updated successfully."
else
echo "Failed to update hard drive sleep setting." >&2
exit 1
fi
# Set hard drive sleep to 30 minutes when on battery
echo "Setting hard drive sleep to 30 minutes when on battery..."
if sudo pmset -b disksleep 30; then
echo "Hard drive sleep setting updated successfully."
else
echo "Failed to update hard drive sleep setting." >&2
exit 1
fi
# Set Sleep based on battery presence
if [ "$has_battery" -eq 0 ]; then
# Set Sleep to never when on AC and no battery
echo "Setting Sleep to never when on AC (no battery)..."
if sudo pmset -a sleep 0; then
echo "Sleep setting updated successfully."
else
echo "Failed to update sleep setting." >&2
exit 1
fi
else
# Set Sleep to 20 minutes when on battery
echo "Setting Sleep to 20 minutes when on battery..."
if sudo pmset -b sleep 20; then
echo "Sleep setting updated successfully."
else
echo "Failed to update sleep setting." >&2
exit 1
fi
fi
# Disable Hibernation if the workstation does not have a battery
if [ "$has_battery" -eq 0 ]; then
echo "This workstation does not have a battery, disabling hibernation..."
if sudo pmset -a hibernatemode 0; then
echo "Hibernation setting updated successfully."
else
echo "Failed to update hibernation setting." >&2
exit 1
fi
fi
echo "Power settings configured successfully."
Script data
Language - Bash
Run as - System / Root User
Script timeout duration - 5 Mins