LINUX.ORG.RU

ACPID и изменение яркости экрана

 , ,


0

1

Всем привет. Стоит Fedora 21 на ноутбуке асере. Дело в том, что при отключении/подключении питания меняется яркость. Хочу сделать, чтобы яркость всегда оставалась одной и той же. Нашел на арч вики скрипт с acpid.

Установил acpid.

В /etc/acpi/switch-to-battery.sh написал:

ac_adapter)
    case "$2" in
        AC*|AD*)
            case "$4" in
                00000000)
                    echo -n 3 > /sys/class/backlight/acpi_video0/brightness
                    ;;
                00000001)
                    echo -n 3 > /sys/class/backlight/acpi_video0/brightness
                    ;;
            esac

/etc/acpi/events/switch-to-battery:

event=ac_adapter ACPI0003:00 00000080 00000000
action=/etc/acpi/switch-to-battery.sh

Отключение/Включение питание $ acpi_listen

ac_adapter ACPI0003:00 00000080 00000000
processor LNXCPU:00 00000081 00000000
processor LNXCPU:01 00000081 00000000
processor LNXCPU:02 00000081 00000000
processor LNXCPU:03 00000081 00000000
battery PNP0C0A:00 00000080 00000001
ac_adapter ACPI0003:00 00000080 00000000
battery PNP0C0A:00 00000080 00000001
ac_adapter ACPI0003:00 00000080 00000001
processor LNXCPU:00 00000081 00000000
processor LNXCPU:01 00000081 00000000
processor LNXCPU:02 00000081 00000000
processor LNXCPU:03 00000081 00000000
battery PNP0C0A:00 00000080 00000001
ac_adapter ACPI0003:00 00000080 00000001
battery PNP0C0A:00 00000080 00000001

$ journalctl -u acpid -f

Apr 27 22:53:31 pipboy acpid[8993]: waiting for events: event logging is on
Apr 27 22:53:35 pipboy acpid[8993]: received netlink event "ac_adapter ACPI0003:00 00000080 00000000"
Apr 27 22:53:35 pipboy acpid[8993]: rule from /etc/acpi/events/switch-to-battery matched
Apr 27 22:53:35 pipboy acpid[8997]: executing action "/etc/acpi/switch-to-battery.sh"
Apr 27 22:53:35 pipboy acpid[8993]: action exited with status 0
Apr 27 22:53:35 pipboy acpid[8993]: 1 total rule matched
Apr 27 22:53:35 pipboy acpid[8993]: completed netlink event "ac_adapter ACPI0003:00 00000080 00000000"
Apr 27 22:53:35 pipboy acpid[8993]: received netlink event "processor LNXCPU:00 00000081 00000000"
Apr 27 22:53:35 pipboy acpid[8993]: 0 total rules matched
Apr 27 22:53:35 pipboy acpid[8993]: completed netlink event "processor LNXCPU:00 00000081 00000000"
Apr 27 22:53:35 pipboy acpid[8993]: received netlink event "processor LNXCPU:01 00000081 00000000"
Apr 27 22:53:35 pipboy acpid[8993]: 0 total rules matched
Apr 27 22:53:35 pipboy acpid[8993]: completed netlink event "processor LNXCPU:01 00000081 00000000"
Apr 27 22:53:35 pipboy acpid[8993]: received netlink event "processor LNXCPU:02 00000081 00000000"
Apr 27 22:53:35 pipboy acpid[8993]: 0 total rules matched
Apr 27 22:53:35 pipboy acpid[8993]: completed netlink event "processor LNXCPU:02 00000081 00000000"
Apr 27 22:53:35 pipboy acpid[8993]: received netlink event "processor LNXCPU:03 00000081 00000000"
Apr 27 22:53:35 pipboy acpid[8993]: 0 total rules matched
Apr 27 22:53:35 pipboy acpid[8993]: completed netlink event "processor LNXCPU:03 00000081 00000000"
Apr 27 22:53:35 pipboy acpid[8993]: received netlink event "battery PNP0C0A:00 00000080 00000001"
Apr 27 22:53:35 pipboy acpid[8993]: 0 total rules matched
Apr 27 22:53:35 pipboy acpid[8993]: completed netlink event "battery PNP0C0A:00 00000080 00000001"
Apr 27 22:53:35 pipboy acpid[8993]: received netlink event "ac_adapter ACPI0003:00 00000080 00000000"
Apr 27 22:53:35 pipboy acpid[8993]: rule from /etc/acpi/events/switch-to-battery matched
Apr 27 22:53:35 pipboy acpid[9064]: executing action "/etc/acpi/switch-to-battery.sh"
Apr 27 22:53:35 pipboy acpid[8993]: action exited with status 0

$ sudo systemctl status acpid

 password for pie: 
● acpid.service - ACPI Event Daemon
   Loaded: loaded (/usr/lib/systemd/system/acpid.service; static)
   Active: active (running) since Mon 2015-04-27 23:11:50 VLAT; 15min ago
     Docs: man:acpid(8)
 Main PID: 10648 (acpid)
   CGroup: /system.slice/acpid.service
           └─10648 /usr/sbin/acpid -f -l

Apr 27 23:24:25 pipboy acpid[10648]: rule from 10909[1000:1000] matched
Apr 27 23:24:25 pipboy acpid[10648]: notifying client 10909[1000:1000]
Apr 27 23:24:25 pipboy acpid[10648]: 1 total rule matched
Apr 27 23:24:25 pipboy acpid[10648]: completed netlink event "ac_adapter ACPI0003:00 00000080 00000001"
Apr 27 23:24:26 pipboy acpid[10648]: received netlink event "battery PNP0C0A:00 00000080 00000001"
Apr 27 23:24:26 pipboy acpid[10648]: rule from 10909[1000:1000] matched
Apr 27 23:24:26 pipboy acpid[10648]: notifying client 10909[1000:1000]
Apr 27 23:24:26 pipboy acpid[10648]: 1 total rule matched
Apr 27 23:24:26 pipboy acpid[10648]: completed netlink event "battery PNP0C0A:00 00000080 00000001"
Apr 27 23:27:23 pipboy acpid[10648]: client 10909[1000:1000] has disconnected

Яркость меняется по прежнему. Если просто запустить «sudo /etc/acpi/switch-to-battery.sh ac_adapter ACPI0003:00 00000080 00000000», то ругался на синтаксис скрипта. Поэтому я изменил его на:

#ac_adapter)
    case "$2" in
        AC*|AD*)
            case "$4" in
                00000000)
                    echo -n 3 > /sys/class/backlight/acpi_video0/brightness
                    ;;
                00000001)
                    echo -n 3 > /sys/class/backlight/acpi_video0/brightness
                    ;;
            esac
        esac

Так яркость изменяется вышеуказанным способом. Однако acpid опять же никак не реагирует. В общем, подскажите, пожалуйста, как это сделать.

Ответ на: комментарий от dvrts

Только что попробовал - стало только хуже. Теперь вообще яркость вручную поменять не могу, хотя при отключении/подключении питания она так же меняется.

Говорят, у других ноутов есть опция в биосе, которая позволяет отключать подобную штуковину. У меня такой нет. Дурацкий асер...

steel_beams
() автор топика
Ответ на: комментарий от steel_beams

А какой живет? xfce4-power-manager? KDE? Может, из LXDE какой апплет на панели?

mamboo ★★
()

это же в гуе элементарно настраивается, что вы в дебри то лезете?

это как тот чел, который написал статью про релиз федоры 21 и где рассказывал как поменять скорость указателя мыши правкой конфига иксов

ionanahin ★★★
()

Настраивается через виджет «Индикатор батареи» в KDE или любой иной power-manager. Зачем тебе acpi колупать, который даже в поставке по умолчанию не идёт?

FairyOstroGrad
()
Ответ на: комментарий от ionanahin

это же в гуе элементарно настраивается, что вы в дебри то лезете?

+1

это как тот чел, который написал статью про релиз федоры 21 и где рассказывал как поменять скорость указателя мыши правкой конфига иксов

А где можно об этом почитать, кстати? А то у меня мышь по дефолту какая-то сумасшедшая просто. Пока пытаюсь обуздать вот такой фигнёй:

  mouseModel=`xinput list-props $i | grep 'Device Product ID' | sed 's/[\ \t]//g'|grep -P -o '(?<=\:)[\ \,0-9]*'`
  if [ $mouseModel = "7119,2" ]; then  ## Mouse 'rapoo'
    echo -e 'Mouse "rapoo" found, do apply parameters'
    decid=`xinput list-props $i | grep 'Device Accel Constant Deceleration' | grep -P -o '(?<=\()[0-9]*(?=\))'`
    adcid=`xinput list-props $i | grep 'Device Accel Adaptive Deceleration' | grep -P -o '(?<=\()[0-9]*(?=\))'`
    avsid=`xinput list-props $i | grep 'Device Accel Velocity Scaling' | grep -P -o '(?<=\()[0-9]*(?=\))'`

    if [ -n "$avsid" ]; then xinput set-prop $i $avsid 20; fi   # Device Accel Velocity Scaling
    if [ -n "$decid" ]; then xinput set-prop $i $decid  3; fi   # Device Accel Constant Deceleration
    if [ -n "$adcid" ]; then xinput set-prop $i $adcid  8; fi   # Device Accel Adaptive Deceleration

    xinput set-ptr-feedback $i 4 42 10
  fi;

Но получается в принципе всё равно не то, не вижу акселерации, а в кедах настройка мыши вообще бесполезная какая-то. Да и DPI хотелось бы иметь возможность выставлять программно (на ней кнопка есть, на четыре варианта, но не щёлкать же каждый раз)

anonymous
()

В общем, видимо нашел решение. «Видимо» потому что пишу с Убунту. Не знаю будет ли работать в Федоре.

Ubuntu 15.04, pm-utils do not look into /etc/pm/power.d/ anymore

There is just one thing systemd cannot do (as of systemd-204): power management depending on whether the system is running on AC or battery. To fill this gap, you can create a single udev rule that runs a script when the AC adapter is plugged and unplugged:

/etc/udev/rules.d/powersave.rules
SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/path/to/your/script true"
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/path/to/your/script false"

/etc/pm/power.d/00-brightness:

#!/bin/bash

case $1 in
    true)
        echo "Enable screen power saving"
        echo 5 > /sys/class/backlight/acpi_video0/device/backlight/acpi_video0/brightness
    ;;
    false)
        echo "Disable screen power saving"
        echo 14 > /sys/class/backlight/acpi_video0/device/backlight/acpi_video0/brightness
    ;;
esac
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.