mirror of
https://github.com/ChrisTitusTech/linutil.git
synced 2024-11-22 13:22:28 +00:00
112 lines
3.3 KiB
Bash
112 lines
3.3 KiB
Bash
#!/bin/sh -e
|
|
|
|
. ../common-script.sh
|
|
|
|
installAutoCpufreq() {
|
|
clear
|
|
|
|
AUTO_CPUFREQ_PATH="$HOME/.local/share/auto-cpufreq"
|
|
|
|
if ! command_exists auto-cpufreq; then
|
|
printf "%b\n" "${YELLOW}Installing auto-cpufreq.${RC}"
|
|
|
|
if ! command_exists git && [ "$PACKAGER" != "pacman" ]; then
|
|
printf "%b\n" "${YELLOW}Installing git.${RC}"
|
|
case "$PACKAGER" in
|
|
*)
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y git
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
case "$PACKAGER" in
|
|
pacman)
|
|
if command_exists powerprofilesctl; then
|
|
printf "%b\n" "${YELLOW}Disabling powerprofilesctl service.${RC}"
|
|
"$ESCALATION_TOOL" systemctl disable --now power-profiles-daemon
|
|
fi
|
|
|
|
"$AUR_HELPER" -S --needed --noconfirm auto-cpufreq
|
|
"$ESCALATION_TOOL" systemctl enable --now auto-cpufreq
|
|
;;
|
|
*)
|
|
mkdir -p "$HOME/.local/share"
|
|
|
|
if [ -d "$AUTO_CPUFREQ_PATH" ]; then
|
|
rm -rf "$AUTO_CPUFREQ_PATH"
|
|
fi
|
|
|
|
printf "%b\n" "${YELLOW}Cloning auto-cpufreq repository.${RC}"
|
|
git clone --depth=1 https://github.com/AdnanHodzic/auto-cpufreq.git "$AUTO_CPUFREQ_PATH"
|
|
|
|
cd "$AUTO_CPUFREQ_PATH"
|
|
printf "%b\n" "${YELLOW}Running auto-cpufreq installer.${RC}"
|
|
"$ESCALATION_TOOL" ./auto-cpufreq-installer
|
|
"$ESCALATION_TOOL" auto-cpufreq --install
|
|
;;
|
|
esac
|
|
else
|
|
printf "%b\n" "${GREEN}auto-cpufreq is already installed.${RC}"
|
|
fi
|
|
}
|
|
|
|
applyTweak() {
|
|
printf "%b\n" "${YELLOW}Configuring auto-cpufreq.${RC}"
|
|
|
|
if command_exists auto-cpufreq; then
|
|
if ls /sys/class/power_supply/BAT* >/dev/null 2>&1; then
|
|
printf "%b\n" "${GREEN}System detected as laptop. Updating auto-cpufreq for laptop.${RC}"
|
|
"$ESCALATION_TOOL" auto-cpufreq --force powersave
|
|
else
|
|
printf "%b\n" "${GREEN}System detected as desktop. Updating auto-cpufreq for desktop.${RC}"
|
|
"$ESCALATION_TOOL" auto-cpufreq --force performance
|
|
fi
|
|
else
|
|
printf "%b\n" "${RED}auto-cpufreq is not installed.${RC}"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
removeTweak() {
|
|
if command_exists auto-cpufreq; then
|
|
printf "%b\n" "${YELLOW}Removing auto-cpufreq tweak.${RC}"
|
|
"$ESCALATION_TOOL" auto-cpufreq --force reset
|
|
else
|
|
printf "%b\n" "${RED}auto-cpufreq is not installed.${RC}"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
main() {
|
|
printf "%b\n" "${YELLOW}Do you want to apply the auto-cpufreq tweak or remove it?${RC}"
|
|
printf "%b\n" "${YELLOW}1) Apply tweak${RC}"
|
|
printf "%b\n" "${YELLOW}2) Remove tweak${RC}"
|
|
printf "%b\n" "${YELLOW}3) Exit${RC}"
|
|
printf "%b" "Enter your choice [1/3]: "
|
|
read -r choice
|
|
|
|
case "$choice" in
|
|
1)
|
|
applyTweak
|
|
;;
|
|
2)
|
|
removeTweak
|
|
;;
|
|
3)
|
|
printf "%b\n" "${GREEN}Exiting.${RC}"
|
|
exit 0
|
|
;;
|
|
*)
|
|
printf "%b\n" "${RED}Invalid choice. Exiting.${RC}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
printf "%b\n" "${GREEN}auto-cpufreq setup complete.${RC}"
|
|
}
|
|
|
|
checkEnv
|
|
checkEscalationTool
|
|
installAutoCpufreq
|
|
main
|