Script de bash redirect-brightness
Seu problema é que as teclas de função para aumentar / diminuir o brilho estão atualizando /sys/class/backlight/acpi_video0/brightness
em vez de /sys/class/backlight/nv_backlight/brightness
A solicitação original era interceptar as teclas de função e usá-las para controlar o driver nv_backlight
. O problema com isso é:
- Tricky
udev
scripts - Nenhum controle deslizante de notificação pop-up exibe o brilho sem o complicado script Python.
A solução é usar inotify
para monitorar alterações em acpi_video0
. Em seguida, calcule a porcentagem de brilho e aplique a mesma porcentagem a nv_backlight
.
No script abaixo, você precisa alterar WatchDriver
para /sys/class/backlight/acpi_video0/brightness
e PatchDriver to
/ sys / class / backlight / nv_backlight / brightness '
Coloque o script em /usr/local/bin
e torne-o executável usando:
chmod a+x /usr/local/bin/redirect-brightness
Primeiro, execute o script na linha de comando usando
redirect-brightness -l
Se houver um problema, verifique o arquivo de log usando:
cat /tmp/redirect-brightness.log
Se tudo funcionar, adicione redirect-brightness
aos seus aplicativos de inicialização.
redirect-brightness
script bash
#!/bin/bash
# NAME: redirect-brightness
# PATH: /usr/local/bin
# DESC: Redirect to correct driver when Ubuntu is adjusting the wrong
# /sys/class/DRIVER_NAME/brightness
# DATE: June 13, 2018. Modified June 14, 2018.
# NOTE: Written for Ubuntu question:
# https://sobrelinux.info/questions/267151/how-to-switch-between-options-in-sys-class-backlight-to-solve-brightness-prob"/sys/class/backlight/intel_backlight"
PatchDriver="/sys/class/backlight/intel_backlight"
# Must be running as sudo
if [[ $(id -u) != 0 ]]; then
echo >&2 "Root access required. Use: 'sudo redirect-brightness'"
exit 1
fi
# inotifywait required
type inotifywait >/dev/null 2>&1 || \
{ echo >&2 "'inotifywait' required but it's not installed. Aborting."; \
echo >&2 "Use 'sudo apt install inotify-tools' to install it.'"; \
exit 1; }
# Was right watch driver directory name setup correctly?
if [[ ! -d $WatchDriver ]]; then
echo >&2 "Watch directory: '$WatchDriver'"; \
echo >&2 "does not exist. Did you spell it correctly? Aborting.'"; \
exit 1;
fi
# Was right patch driver directory name setup correctly?
if [[ ! -d $PatchDriver ]]; then
echo >&2 "Redirect to directory: '$PatchDriver'"; \
echo >&2 "does not exist. Did you spell it correctly? Aborting.'"; \
exit 1;
fi
# Get maximum brightness values
WatchMax=$(cat $WatchDriver/max_brightness)
PatchMax=$(cat $PatchDriver/max_brightness)
# PARM: 1="-l" or "--log-file" then write each step to log file.
fLogFile=false
if [[ $1 == "-l" ]] || [[ $1 == "--log-file" ]]; then
fLogFile=true
LogFile=/tmp/redirect-brightness.log
echo redirect-brightness LOG FILE > $LogFile
echo WatchMax: $WatchMax PatchMax: $PatchMax >> $LogFile
fi
SetBrightness () {
# Calculate watch current percentage
WatchAct=$(cat $WatchDriver/actual_brightness)
WatchPer=$(( WatchAct * 100 / WatchMax ))
[[ $fLogFile == true ]] && echo WatchAct: $WatchAct WatchPer: $WatchPer >> $LogFile
# Reverse engineer patch brightness to set
PatchAct=$(( PatchMax * WatchPer / 100 ))
echo $PatchAct | sudo tee $PatchDriver/brightness
[[ $fLogFile == true ]] && echo PatchAct: $PatchAct >> $LogFile
}
# When machine boots, set brightness to last saved value
SetBrightness
# Wait forever for user to press Fn keys adjusting brightness up/down.
while (true); do
inotifywait --event modify $WatchDriver/actual_brightness
[[ $fLogFile == true ]] && \
echo "Processing modify event in $WatchDriver/actual_brightness" >> $LogFile
SetBrightness
done
Resposta original 11 de junho de 2018.
Resposta em andamento no trabalho
Existem muitos usuários da nVidia com problemas semelhantes no Ubuntu 18.04:
- Brilho no laptop MSI GT72VR no Ubuntu 18.04 com NVIDIA GTX 1060 Mobile não funciona
- computador não acorda da suspensão e não poderia mudar o brilho
- Controle de brilho ausente ao usar drivers da Nvidia, mas reaparece com o X.Org
- Xubuntu 18.04: fazer com que as teclas de brilho Fn funcionem com / sys / class / backlight / nv_backlight /
- Como alterar o driver de luz de fundo no lubuntu
- Brilho no laptop MSI GT72VR no Ubuntu 18.04 com NVIDIA GTX 1060 Mobile não funciona
- problema de exibição da NVIDIA no controle de brilho e no Video PlayBack
- Não é possível alterar o brilho da tela
- O O brilho da tela do laptop não pode ser ajustado com os botões ou com o controle deslizante. Editar
Antes de escrever um script
Eu posso escrever um script para imitar alterações em / acpi_video e preencher / nv_backlight, mas antes de tentar isso:
- Edite
/etc/default/grub
. - Localizar
quiet splash
- Adicionar por trás do splash:
acpi_backlight=vendor
- Salve o arquivo
- Executar
sudo update-grub
De acordo com esta resposta, deve funcionar para você: Xubuntu 18.04: fazer as teclas de brilho do Fn funcionarem com / sys / class / backlight / nv_backlight /
Wayland
O brilho não funciona no Wayland. Certifique-se de que você não está usando. Veja: O brilho da tela do laptop não pode ser ajustado com os botões nem com o controle deslizante. Editar