No coração da iluminação de fundo está o parâmetro do Kernel do Linux que está exposto a você aqui, abaixo de /sys
. Você pode manipulá-lo definindo o valor para algo entre 1 e 15. Por exemplo:
$ sudo echo 5 > /sys/class/backlight/acpi_video0/brightness
Defina o brilho como 5. A manipulação deste parâmetro do Kernel é abstraída para que, quando você estiver alterando o valor com o teclado ou um applet de área de trabalho, esteja manipulando-o por meio de D-Bus e HAL .
O D-Bus está permitindo que você manipule essa estrutura, org.freedesktop.Hal.Device.KeyboardBacklight
e HAL está permitindo que o privilégio de fazer isso. Você pode ver isso no meu sistema Fedora 14 assim:
$ grep -i backlight /etc/dbus-1/system.d/*
/etc/dbus-1/system.d/hal.conf: send_interface="org.freedesktop.Hal.Device.KeyboardBacklight"/>
/etc/dbus-1/system.d/hal.conf: send_interface="org.freedesktop.Hal.Device.KeyboardBacklight"/>
No arquivo hal.conf
:
<!-- Only allow users at the local console to manipulate devices -->
<policy at_console="true">
...
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device.KeyboardBacklight"/>
Você pode consultar o valor atual, através do D-Bus da seguinte forma:
$ dbus-send \
--print-reply \
--system \
--dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer_backlight \
org.freedesktop.Hal.Device.LaptopPanel.GetBrightness | \
tail -1 | \
awk '{print $2}'
que retorna o valor:
15
Você também pode manipulá-lo a partir da linha de comando, assim (o bit int32:10
abaixo está definindo o brilho para "10"):
$ dbus-send \
--print-reply \
--system \
--dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer_backlight \
org.freedesktop.Hal.Device.LaptopPanel.SetBrightness \
int32:10 #2&>1 > /dev/null
Você pode ver que mudamos o brilho:
$ cat /sys/class/backlight/acpi_video0/brightness
10
Então, como corrijo isso?
Uma ideia seria salvar o brilho atual em um arquivo antes de um desligamento e / ou reinicialização e, em seguida, adicionar à sua inicialização (talvez ~/.xinitrc
) o comando dbus-send ...
acima, adicionando o valor de brilho anteriormente salvo no arquivo.
Por que tenho vários arquivos em / sys / class / backlight?
Me deparei com este Q & A em askubuntu.com intitulado: Por que existem dois arquivos de controle de brilho (/ sys / class /) no meu sistema . Na resposta para isso, houve este comentário:
If the system starts with the kernel parameter acpi_backlight=vendor, the item acpi_video0 is replaced by the item intel, but then the Fn-Keys can not change the value of this item.
Eu também encontrei esta documentação para o Kernel, intitulada: Kernel Parameters . Neste documento, as seguintes opções aCPI são mencionadas:
acpi_backlight= [HW,ACPI]
acpi_backlight=vendor
acpi_backlight=video
If set to vendor, prefer vendor specific driver
(e.g. thinkpad_acpi, sony_acpi, etc.) instead
of the ACPI video.ko driver.
Acho que o intel_backlight
referenciado em /sys/class/backlight
faz parte da luz de fundo dos drivers da placa de vídeo fornecidos para as placas gráficas da Intel.