Keyboard backlight (Português)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Status de tradução: Esse artigo é uma tradução de Keyboard backlight. Data da última tradução: 2020-06-30. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Existem vários métodos para controlar o nível de brilho da luz de fundo do teclado.

Qualquer fornecedor

Há várias formas de gerenciar o nível de brilho e diferentes ferramentas auxiliares para realizar isso, tal como brightnessctl ou light.

O pseudossistema de arquivos sys expõe uma interface à luz de fundo do teclado. O atual nível de brilho pode ser obtido lendo /sys/class/leds/tpacpi::kbd_backlight/brightness. Por exemplo, para obter o nível máximo de brilho:

 cat /sys/class/leds/tpacpi::kbd_backlight/max_brightness

Para definir o brilho para 1:

 echo 1 | sudo tee /sys/class/leds/tpacpi::kbd_backlight/brightness

Ao usar brightnessctl você pode obter uma lista de controles de brilho disponíveis com brightnessctl --list, então para mostrar as informações de luz de fundo do kbd:

 brightnessctl --device='tpacpi::kbd_backlight' info

Isso mostrará o valor atual absoluto e relativo e o valor absoluto máximo. Para definir um valor diferente:

 brightnessctl --device='tpacpi::kbd_backlight' set 1

D-Bus

Você pode controlar a luz de fundo do teclado do seu computador através da interface D-Bus. Os benefícios de usá-lo são que nenhuma modificação nos arquivos do dispositivo é necessária e é independente do fornecedor.

A seguir está um exemplo de implementação no Python 3. Instale os pacotes upower e dbus-python e coloque o seguinte script em /usr/local/bin/ e torne-o executável. Você pode mapear seus atalhos de teclado para executar /usr/local/bin/kb-light.py + x e /usr/local/bin/kb-light.py - x para aumentar e diminuir o nível de luz de fundo do teclado até x quantidades.

Dica: Você deve tentar com um x=1 para determinar os limites dos níveis de luz de fundo do teclado
/usr/local/bin/kb-light.py
#!/usr/bin/env python3

import dbus
import sys

def kb_light_set(delta):
    bus = dbus.SystemBus()
    kbd_backlight_proxy = bus.get_object('org.freedesktop.UPower', '/org/freedesktop/UPower/KbdBacklight')
    kbd_backlight = dbus.Interface(kbd_backlight_proxy, 'org.freedesktop.UPower.KbdBacklight')

    current = kbd_backlight.GetBrightness()
    maximum = kbd_backlight.GetMaxBrightness()
    new = max(0, min(current + delta, maximum))

    if 0 <= new <= maximum:
        current = new
        kbd_backlight.SetBrightness(current)

    # Return current backlight level percentage
    return 100 * current / maximum

if __name__ ==  '__main__':
    if len(sys.argv) == 2 or len(sys.argv) == 3:
        if sys.argv[1] == "--up" or sys.argv[1] == "+":
            if len(sys.argv) == 3:
                print(kb_light_set(int(sys.argv[2])))
            else:
                print(kb_light_set(17))
        elif sys.argv[1] == "--down" or sys.argv[1] == "-":
            if len(sys.argv) == 3:
                print(kb_light_set(-int(sys.argv[2])))
            else:
                print(kb_light_set(-17))
        else:
            print("Unknown argument:", sys.argv[1])
    else:
        print("Script takes one or two argument.", len(sys.argv) - 1, "arguments provided.")


Alternativamente, o seguinte bash de uma linha irá definir a luz de fundo para o valor especificado no argumento:

setKeyboardLight () {
    dbus-send --system --type=method_call  --dest="org.freedesktop.UPower" "/org/freedesktop/UPower/KbdBacklight" "org.freedesktop.UPower.KbdBacklight.SetBrightness" int32:$1 
}

No GNOME

O seguinte pode ser executado a partir de um terminal ou mapeado para combinações de teclas

gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Keyboard.StepUp
gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Keyboard.StepDown

No MATE

No caso de você usar o ambiente MATE, você pode se cansar com a luz de fundo do teclado com iluminação repetida durante o login, desbloqueando a tela ou acendendo a tela apagada. A configuração a seguir evita acender automaticamente a iluminação durante qualquer ação. Os únicos gatilhos restantes conectando o adaptador e à nova inicialização. Depois disso, você pode controlar a luz de fundo do teclado apenas através de teclas de atalho (por exemplo, ThinkPad Fn + barra de espaço).

Para evitar a iluminação automática, edite o arquivo /usr/share/dbus-1/system.d/org.freedesktop.UPower.conf da seguinte maneira (duas ocorrências de "negar"):

/usr/share/dbus-1/system.d/org.freedesktop.UPower.conf
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- -->

<!DOCTYPE busconfig PUBLIC
 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
  <!-- Only root can own the service -->
  <policy user="root">
    <allow own="org.freedesktop.UPower"/>
  </policy>
  <policy context="default">

    <allow send_destination="org.freedesktop.UPower"
           send_interface="org.freedesktop.DBus.Introspectable"/>

    <allow send_destination="org.freedesktop.UPower"
           send_interface="org.freedesktop.DBus.Peer"/>
    <allow send_destination="org.freedesktop.UPower"
           send_interface="org.freedesktop.DBus.Properties"/>
    <allow send_destination="org.freedesktop.UPower.Device"
           send_interface="org.freedesktop.DBus.Properties"/>
    <deny  send_destination="org.freedesktop.UPower.KbdBacklight"
           send_interface="org.freedesktop.DBus.Properties"/>
    <allow send_destination="org.freedesktop.UPower.Wakeups"
           send_interface="org.freedesktop.DBus.Properties"/>

    <allow send_destination="org.freedesktop.UPower"
           send_interface="org.freedesktop.UPower"/>
    <allow send_destination="org.freedesktop.UPower"
           send_interface="org.freedesktop.UPower.Device"/>
    <deny  send_destination="org.freedesktop.UPower"
           send_interface="org.freedesktop.UPower.KbdBacklight"/>
    <allow send_destination="org.freedesktop.UPower"
	   send_interface="org.freedesktop.UPower.Wakeups"/>
  </policy>
</busconfig>