#!/bin/bash # Leer el valor actual del brillo current_brightness=$(asusctl -k | grep brigh | awk '{print $5}') # Definir los posibles valores de brillo en orden descendente brightness_levels=("High" "Med" "Low" "Off") # Función para obtener el índice de un valor en un array index_of() { local value=$1 shift local array=("$@") for i in "${!array[@]}"; do if [[ "${array[$i]}" == "$value" ]]; then echo $i return fi done echo -1 } # Obtener el índice del valor actual de brillo current_index=$(index_of "$current_brightness" "${brightness_levels[@]}") # Si el valor actual no es "Off" y el índice es válido if [[ $current_brightness != "Off" && $current_index -ge 0 ]]; then # Calcular el índice del siguiente valor descendente next_index=$((current_index + 1)) # Verificar si el índice es válido if [[ $next_index -lt ${#brightness_levels[@]} ]]; then # Obtener el siguiente valor descendente next_brightness=${brightness_levels[$next_index]} # Guardar el nuevo valor en el archivo asusctl -k "$next_brightness" echo "El brillo se ha cambiado a: $next_brightness" else echo "El brillo ya está en el nivel más bajo: $current_brightness" fi else echo "El brillo está apagado o no se ha encontrado un valor válido. No se realizó ningún cambio." fi