48 lines
1.4 KiB
Bash
Executable File
48 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
CONFIG_DIR="$HOME/.config/hypr/hyprland/configs"
|
|
CURRENT_CONFIG_FILE="$HOME/.config/hypr/hyprland/active.conf"
|
|
|
|
# List of available configs in order to cycle through
|
|
CONFIGS=("powersave" "balanced" "performance")
|
|
|
|
# Read current config or set default
|
|
if [[ -f "$CURRENT_CONFIG_FILE" ]]; then
|
|
CURRENT_CONFIG=$(grep -oP '^#\s*\K\w+' "$CURRENT_CONFIG_FILE" | head -n1)
|
|
else
|
|
CURRENT_CONFIG="${CONFIGS[0]}"
|
|
fi
|
|
|
|
# Find current config index
|
|
INDEX=0
|
|
for i in "${!CONFIGS[@]}"; do
|
|
if [[ "${CONFIGS[$i]}" = "$CURRENT_CONFIG" ]]; then
|
|
INDEX=$i
|
|
break
|
|
fi
|
|
done
|
|
|
|
# Calculate next config index (with wrap-around)
|
|
NEXT_INDEX=$(( (INDEX + 1) % ${#CONFIGS[@]} ))
|
|
NEXT_CONFIG="${CONFIGS[$NEXT_INDEX]}"
|
|
|
|
# Update current config file
|
|
printf "# ${NEXT_CONFIG}\n" > "$CURRENT_CONFIG_FILE"
|
|
printf "# AUTO-GENERATED FILE\n" >> "$CURRENT_CONFIG_FILE"
|
|
cat "${CONFIG_DIR}/${NEXT_CONFIG}.conf" >> "$CURRENT_CONFIG_FILE"
|
|
|
|
if [[ "$NEXT_CONFIG" == "powersave" ]]; then
|
|
sudo auto-cpufreq --force powersave
|
|
elif [[ "$NEXT_CONFIG" == "performance" ]]; then
|
|
sudo auto-cpufreq --force performance
|
|
elif [[ "$NEXT_CONFIG" == "balanced" ]]; then
|
|
sudo auto-cpufreq --force reset
|
|
else
|
|
notify-send -u critical "Unknown config: $NEXT_CONFIG"
|
|
fi
|
|
|
|
# Reload Hyprland
|
|
hyprctl reload
|
|
|
|
# Notification
|
|
notify-send -t 3000 "Hyprland Config" "Switched to ${NEXT_CONFIG} config" |