Solução de software
Na pergunta e nos comentários, o OP tentou várias soluções de hardware diferentes sem sucesso. Isso deixa soluções de software que não são tão eficazes, mas melhor que nada. Este script pode ser adaptado para todos os monitores:
#!/bin/bash
# NAME: alien
# PATH: /mnt/e/bin
# DESC: Set brightness of Alien Laptop
# DATE: Dec 9, 2017. Modified July 21, 2018.
# NOTE: Monitor name changes with driver used: nVidia = "eDP-1-1"
# Nouveau = "eDP-1"
# Intel = "eDP1"
MonitorName="eDP"
AllMonitors='xrandr -q | grep -v disconnected | grep connected | awk '{print $1}''
echo All Monitors: $AllMonitors
substr=ab
for s in $AllMonitors; do
if case ${s} in *"${MonitorName}"*) true;; *) false;; esac; then
FullMonitor=${s}
printf %s\n "'${s}' contains '${MonitorName}'"
else
printf %s\n "'${s}' does not contain '${MonitorName}'"
fi
done
echo Full Monitor: $FullMonitor
if [[ $# -ne 1 ]]; then
xrandr --verbose | grep -A5 "^$FullMonitor" > /tmp/alien
head -n1 /tmp/alien
echo "$(tput setaf 6)" ; tail -n1 /tmp/alien ; echo "$(tput sgr0)"
rm /tmp/alien
echo 'One argument required for brightness level, e.g. "alien .63"'
echo 'will set brightness level of Alien display to level .63 using xrandr'
exit 1
fi
xrandr --output "$FullMonitor" --brightness "$1"
O script acima foi escrito para um sistema de três monitores e aborda a tela do laptop. Dois outros scripts (não listados aqui) são chamados de "Sony" e "Toshiba" para dois monitores externos. O laptop pode ter driver Intel para iGPU i7-6700 HQ HD 530, GPU nVidia GTX 970M com diferentes nomes de tela xrandr
, dependendo do driver de gráficos proprietários nVidia ou do driver Nouveau Open Source.
Como o sistema tem um total de 9 nomes de tela xrandr diferentes, três nomes para cada tela, o script é flexível dependendo de como a máquina foi inicializada.
Para adaptar este script às suas necessidades:
- Renomear script, por exemplo, alterar
alien
paramsi
- Renomeie
eDP
, usexrandr
para obter uma lista de todos os nomes de monitores e selecione o prefixo apropriado. Digite o prefixo apenas no script. Ele encontrará o sufixo-1
automaticamente. - Ao chamar o parâmetro de passagem um para o nível de brilho;
.75
= 75%,.3
= 30%, etc.
Continue verificando novos kernels para suporte de hardware
Use estes comandos para verificar se o hardware é suportado após uma atualização do kernel:
$ ls /sys/class/backlight
intel_backlight
$ cat /sys/class/backlight/intel_backlight/*brightness*
3000
3000
7500
- O primeiro
3000
é o brilho real - O segundo
3000
é a última alteração de brilho da tentativa -
7500
é o nível de brilho máximo para o seu hardware
Para tentar alterar o uso do nível de brilho do hardware:
$ echo 2500 | sudo tee /sys/class/backlight/intel_backlight/brightness
2500
Se o hardware for suportado, você verá uma alteração:
$ cat /sys/class/backlight/intel_backlight/*brightness*
2500
2500
7500