Skip to content

Commit

Permalink
rework: auto-cpufreq
Browse files Browse the repository at this point in the history
  • Loading branch information
jeevithakannan2 committed Nov 3, 2024
1 parent 5878f4d commit 2ec4186
Show file tree
Hide file tree
Showing 5 changed files with 119 additions and 103 deletions.
111 changes: 111 additions & 0 deletions core/tabs/applications-setup/auto-cpufreq.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
#!/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 [ -d /sys/class/power_supply/BAT0 ]; 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
6 changes: 6 additions & 0 deletions core/tabs/applications-setup/tab_data.toml
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,12 @@ description = "Universal Android Debloater (UAD) is a tool designed to help user
script = "android-debloat.sh"
task_list = "I"

[[data]]
name = "Auto CPU Frequency"
description = "Automatic CPU speed & power optimizer.\nhttps://github.com/AdnanHodzic/auto-cpufreq"
script = "auto-cpufreq.sh"
task_list = "I SS"

[[data]]
name = "Bash Prompt"
description = "The .bashrc file is a script that runs every time a new terminal session is started in Unix-like operating systems.\nIt is used to configure the shell session, set up aliases, define functions, and more, making the terminal easier to use and more powerful.\nThis command configures the key sections and functionalities defined in the .bashrc file from CTT's mybash repository.\nhttps://github.com/ChrisTitusTech/mybash"
Expand Down
98 changes: 0 additions & 98 deletions core/tabs/utils/power-profile.sh

This file was deleted.

5 changes: 0 additions & 5 deletions core/tabs/utils/tab_data.toml
Original file line number Diff line number Diff line change
Expand Up @@ -110,11 +110,6 @@ name = "Auto Login"
script = "auto-login.sh"
task_list = "DE setup"

[[data]]
name = "Auto Power Profiling"
script = "power-profile.sh"
task_list = "I"

[[data]]
name = "Bluetooth Manager"
description = "This utility is designed to manage bluetooth in your system"
Expand Down
2 changes: 2 additions & 0 deletions docs/userguide.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ https://github.com/ChrisTitusTech/neovim
- **Alacritty**: Alacritty is a modern terminal emulator that comes with sensible defaults, but allows for extensive configuration. By integrating with other applications, rather than reimplementing their functionality, it manages to provide a flexible set of features with high performance. The supported platforms currently consist of BSD, Linux, macOS and Windows.
This command installs and condifures alacritty terminal emulator.
- **Android Debloater**: Universal Android Debloater (UAD) is a tool designed to help users remove bloatware and unnecessary pre-installed applications from Android devices, enhancing performance and user experience.
- **Auto CPU Frequency**: Automatic CPU speed & power optimizer.
https://github.com/AdnanHodzic/auto-cpufreq
- **Bash Prompt**: The .bashrc file is a script that runs every time a new terminal session is started in Unix-like operating systems.
It is used to configure the shell session, set up aliases, define functions, and more, making the terminal easier to use and more powerful.
This command configures the key sections and functionalities defined in the .bashrc file from CTT's mybash repository.
Expand Down

0 comments on commit 2ec4186

Please sign in to comment.