Script de bash para ajustar o brilho quando a bateria está desconectada

1

Estou tentando configurar meu sistema e praticar com scripts e coisas do tipo. Estou executando o Linux Mint 16 em um laptop Samsung RC520 ( Linux 3.11.0-12-generic x86_64 ). Eu quero implementar um script que irá diminuir o brilho da minha tela para um valor pré-definido quando eu desligar a energia (e aumentá-lo quando eu ligá-lo de volta).

Eu posso fazer alguns scripts muito básicos, mas não perto desse nível. Eu tenho "xbacklight", que irá definir o brilho a partir da linha de comando, então quando eu desligar a energia a linha que eu quero implementar seria xbacklight -set 20 . Eu também sei que desconectar o poder é registrado pelo acpi (isso pode soar completamente estúpido, mas espero que fique claro o que quero dizer); quando eu plugo e volto ao poder recebo o seguinte com acpi_listen :

$ acpi_listen
ac_adapter ADP1 00000080 00000000
processor CPU0 00000081 00000000
processor CPU1 00000081 00000000
processor CPU2 00000081 00000000
processor CPU3 00000081 00000000
ac_adapter ADP1 00000080 00000001
processor CPU0 00000081 00000000
processor CPU1 00000081 00000000
processor CPU2 00000081 00000000
processor CPU3 00000081 00000000
battery BAT1 00000080 00000001

Então eu sei que tenho que usar isso, mas tenho dois problemas principais: Eu não sei onde colocar o script para que ele seja implementado automaticamente, e não sei como reconhecer o plug in / out em acpi porque tudo que sei é acpi_listen .

    
por davly 21.01.2014 / 19:18

2 respostas

1

Eu acredito que o Linux Mint vem com pm-utils , que é o que eu usei para escrever um roteiro nas linhas do que você está pedindo. Abaixo, o script que escrevi para escurecer minha tela (e meu teclado) quando meu computador está desconectado e restaura o brilho quando eu o conecto de volta:

Você precisa tornar o script executável e colocá-lo em /etc/pm/power.d/ .

#!/bin/sh
# Adjust brightness of backlights based on power source

case $1 in
    # On battery
    true)
        # Dim keyboard backlight
        echo 0 > /sys/class/leds/asus::kbd_backlight/brightness
        # Dim screen backlight
        expr 'cat /sys/class/backlight/acpi_video0/max_brightness' / 100 > \
            /sys/class/backlight/acpi_video0/brightness
    ;;

    # On AC
    false)
        # Dim keyboard backlight
        cat /sys/class/leds/asus::kbd_backlight/max_brightness > \
            /sys/class/leds/asus::kbd_backlight/brightness
        # Dim screen backlight
        cat /sys/class/backlight/acpi_video0/max_brightness > \
            /sys/class/backlight/acpi_video0/brightness
    ;;
esac

return 0

O script é chamado com um parâmetro, true quando o computador foi desconectado e false quando o computador foi conectado.

Para mais informações sobre pm-utils aqui é um bom lugar para procurar.

    
por 22.01.2014 / 21:32
1
while [ 1 ]; do ( cat /proc/acpi/ac_adapter/AC/state | grep off )  &&  xbacklight -set 20; sleep 5; done
    
por 21.01.2014 / 20:42