Ative as luzes de fundo do teclado no Lenovo suportado (por exemplo, Carbon X1) com o comando

18

Alguns laptops da Lenovo têm luz de fundo do teclado e podem ser ativados usando Fn+ Space. Existem três estados: desligado, normal e brilhante.

Quando inicio o Ubuntu, esses laptops sempre retornam ao brilho da tela solar e o teclado se apaga.

Quero um brilho médio e luzes do teclado acesas por padrão, porque geralmente uso esse laptop em ambientes escuros.

A luz de fundo é fácil. Internet está cheia de informações sobre isso.
echo 10 > /sys/class/backlight/acpi_video0/brightness

Mas como acendo a luz de fundo do teclado com um comando? Estive procurando aqui, mas parece não fazer nada:
/sys/class/leds/tpacpi\:\:thinklight


Atualizações

Eu tentei, for i in {1..32}; do xset led $i; donemas nada muda. Talvez a luz de fundo do teclado dos laptops da Lenovo tenha um driver proprietário e só possa ser controlado tpacpi?

Também tentei for i in $(find /sys/devices/platform/thinkpad_acpi/leds/ | grep /brightness\); do echo 255 > $i; donesem sucesso.

Redsandro
fonte
Ou xset led (é quase 100% provável que seja Caps Lock, etc., mas eu o adicionarei de qualquer maneira) ou setleds. Edit: Encontrado isto
Wilf 28/11
Isso não funciona. Eu tentei, for i in {1..32}; do xset led $i; donemas nada muda.
Redsandro 28/11

Respostas:

8

Parece que isso foi atualizado, meu X1C com ubuntuMATE 16.04 LTS tem

/sys/class/leds/tpacpi\:\:kbd_backlight/brightness

que funciona conforme o esperado, ou seja:

# echo 2 > /sys/class/leds/tpacpi\:\:kbd_backlight/brightness

Traz à luz total :)

wuxmedia
fonte
Ei, sim mesmo! Obrigado por compartilhar esse momento com uma pergunta antiga. :)
Redsandro 26/07
1
Não probs, foi o primeiro hit quando eu estava procurando, pensou que não pode ser que difícil, então pensei que eu deveria atualizar este com minhas descobertas :)
wuxmedia
14

Isso é realmente necessário para ser corrigido!

Eu acho que esse é um bug comum em novos thinkpads. Se você acender o teclado manualmente fn + space, execute:

echo 0 > /sys/class/leds/tpacpi\:\:thinklight/brightness

o teclado desaparecerá. Por favor, consulte o seguinte link se ajudar:

http://www.spinics.net/lists/ibm-acpi-devel/msg03090.html

rashad
fonte
Ei, você está certo, eu não sabia. Como podemos desativá-lo, parece que seria um pedaço de bolo corrigir isso para os desenvolvedores. Já existe um relatório de erros?
Redsandro
O email sugeriu esta solução alternativa: gist.github.com/hadess/6847281 Alguma idéia de como podemos implementá-lo?
rashad
4

Este é o script bash que eu uso:

https://gist.github.com/vzaliva/0adba7bc40e2f31a0b5f802af2a63267

Funciona no IBM ThinkPad X260 com Ubuntu 16.04.

krokodil
fonte
IBM? Esse laptop deve ter pelo menos 10 anos! Mas também funciona no meu Carbon X1! Para ser justo, o código de hadess, conforme respondido por rashad, fez o mesmo, mas não quero dar 5 etapas e instalar compiladores. Eu estava procurando por um simples comando bash. E isso é algo que eu posso usar. Obrigado por responder à minha pergunta de 3 anos. Aceitaram.
Redsandro
Que bom que você achou útil. É claro que eu quis dizer o Lenovo Thinkpad e meu X260 é novo em folha. Acabei de ter o mesmo problema e encontrei esta resposta, mas não gostei do programa C, que também requer modprobe manual, então reescrevi-o como um script. Os autores originais do programa C fizeram todo o trabalho pesado.
Krokodil 23/05
3

Ok, funciona bem comigo com esta essência:

https://gist.github.com/hadess/6847281

  • Primeiro, baixe a essência acima, renomei para em ThinkLight.cvez de tmp.c.
  • Verifique se o glib-2.0 está instalado:

    sudo apt-get install libglib2.0-dev
    
  • Compile ThinkLight.cda seguinte maneira:

    gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include ThinkLight.c -o ThinkLight -lglib-2.0
    
  • Carregar ec_sysmódulo (isso pode ser adicionado /etc/modulesna inicialização):

    sudo modprobe ec_sys
    
  • Por fim, execute ThinkLightcom o argumento de nível (0, 1 ou 2):

     sudo ./ThinkLight 0
     sudo ./ThinkLight 1
     sudo ./ThinkLight 2
    

Agradecimentos especiais à hadess por fazer isso acontecer!

rashad
fonte
Alguma idéia de como executar isso sem o sudo? Tentando executar isso em outro script, e isso é executado como meu usuário.
Zsquare 21/06
Tentei isso e obtive alguns erros :( ThinkLight.c: Na função 'main': ThinkLight.c: 56: 6: aviso: declaração implícita da função 'lseek' [-Wimplicit-function-statement] if (lseek (fd, 0xd, SEEK_CUR) <0) {^ ~~~~ ThinkLight.c: 60: 6: aviso: declaração implícita da função 'write' [-Wimplicit-function-statement] if (write (fd, & levels [level], 1 ) <0) {^ ~~~~
Heriberto Juarez
@HeribertoJuarez, esta é uma resposta antiga, você pode manipular isso diretamente com os novos kernels do Linux. Verifique a resposta do wuxmedia
rashad
1

Meus T450s não reativariam a luz de fundo do teclado após a retomada com kernels anteriores a 4.6. FWIW, com 4.6 agora, a luz de fundo do teclado está definida para o brilho que possuía antes da suspensão.

bk138
fonte