Skip to content

Instantly share code, notes, and snippets.

@mrcomoraes
Last active September 6, 2024 14:43
Show Gist options
  • Save mrcomoraes/e9011c7449b0e56292fd0a4279b94704 to your computer and use it in GitHub Desktop.
Save mrcomoraes/e9011c7449b0e56292fd0a4279b94704 to your computer and use it in GitHub Desktop.
Trocar as cores RGB e brilho do teclado mecânico de notebooks da Avell
#!/usr/bin/env bash
###
# Programa: avell-rgb-keyboard
# Descrição: Trocar as cores RGB e brilho do teclado mecânico de notebooks da Avell
# Ambiente de testes:
# - Modelo do notebook: AVELL A52 HYB NEW
# - Distro: Pop!_OS 22.04 LTS
# - Versão do kernel: 6.9.3-76060903-generic
# Fonte para apoio: https://www.tuxedocomputers.com/en/Dev-Thoughts-Background-information-on-the-new-keyboard-lighting-control.tuxedo
###
### Validações
RGB_KB_PATH='/sys/class/leds/rgb:kbd_backlight/multi_intensity'
BRILHO_KB_PATH='/sys/class/leds/rgb:kbd_backlight/brightness'
if [ ! -e "$RGB_KB_PATH" ]; then
echo "ERRO: Arquivo de controle RGB \"$RGB_KB_PATH\" não foi encontrado!"
exit 1
fi
if [ ! -e "$BRILHO_KB_PATH" ]; then
echo "ERRO: Arquivo de controle de brilho \"$BRILHO_KB_PATH\" não foi encontrado!"
exit 1
fi
###
### Variáveis
AMARELO="255 128 0"
AZUL_ESCURO="0 0 255"
AZUL="0 128 255"
BRANCO="255 255 255"
CIANO="0 255 255"
LARANJA="255 64 0"
ROSA="255 0 128"
ROXO="255 0 255"
VERDE_CLARO="255 255 0"
VERDE="0 255 0"
VERMELHO="255 0 0"
###
### Funções
function main {
if [ -z "$1" ]; then
_get_help
exit 0
fi
while [ -n "$1" ]; do
case $1 in
-i | --install)
echo "Instalando programa como um comando do sistema..."
sudo install "$(basename $0)" /usr/local/bin/avell-rgb-keyboard
echo "Programa instalado com sucesso!"
echo "Agora pode pode rodar o comando \"avell-rgb-keyboard\" direto do terminal."
exit 0
;;
-c | --color)
shift
SWITCH_COLOR=y
case ${1,,} in
amarelo) SET_COLOR=$AMARELO ;;
azul-escuro) SET_COLOR=$AZUL_ESCURO ;;
azul) SET_COLOR=$AZUL ;;
branco) SET_COLOR=$BRANCO ;;
ciano) SET_COLOR=$CIANO ;;
laranja) SET_COLOR=$LARANJA ;;
rosa) SET_COLOR=$ROSA ;;
roxo) SET_COLOR=$ROXO ;;
verde-claro) SET_COLOR=$VERDE_CLARO ;;
verde) SET_COLOR=$VERDE ;;
vermelho) SET_COLOR=$VERMELHO ;;
*) { echo "ERRO: Cor selecionada não está definida!"; exit 1; } ;;
esac
;;
-b | --brightness)
shift
SWITCH_BRIGHTNESS=y
NIVEL_BRILHO=$1
INTENSIDADE=$((NIVEL_BRILHO*32))
if [ $INTENSIDADE -gt "255" ]; then
INTENSIDADE=255
fi
;;
-h | --help | *)
_get_help
exit 0
;;
esac
shift
done
if [ "$SWITCH_COLOR" = "y" ]; then
echo "$SET_COLOR" | sudo tee "$RGB_KB_PATH" > /dev/null
fi
if [ "$SWITCH_BRIGHTNESS" = "y" ]; then
echo "$INTENSIDADE" | sudo tee "$BRILHO_KB_PATH" > /dev/null
fi
}
function _get_help {
echo "
Programa que altera as cores e brilho do teclado mecânico RGB dos modelos da Avell.
Uso: $(basename $0) -c <cor> -b <brilho>
Onde:
-c, --color: Altera a cor do teclado
-b, --brightness: Altera o brilho (intensidade) do teclado
-i, --install: Instala o programa como um comando do sistema
Cores disponíveis de \"-c\":
- amarelo
- azul-escuro
- azul
- branco
- ciano
- laranja
- rosa
- roxo
- verde-claro
- verde
- vermelho
Valores disponíveis de \"-b\": De 1 até 8
"
}
###
main "$@"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment