Как я заставляю свои экранные средства управления яркостью подсветки ноутбука работать?

Они используют insserv по умолчанию, который все еще требует, чтобы sysvinit пакет с Debian 6.0 (Сжал). Это первоначально разрабатывалось и использовалось в OpenSUSE. Ссылки на обсуждения и причины изменения в insserv могут быть найдены на Wiki Debian.

Было много дебатов по будущему init систем в Debian. Главная причина, что Debian не шел дальше к новой init системе, такой как Upstart или Systemd, состоит в том что они оба использование Linux определенные функции. Debian предлагает порты для ядер не-Linux, таких как KFreeBSD. Даже при том, что они не значение по умолчанию и не полностью поддерживаемые всеми сервисами, они могут все еще использоваться.

Вот ссылка архива для некоторых их недавних обсуждений: http://lists.debian.org/debian-devel/2012/03/msg00452.html. Как предупреждение, это - 100 электронных писем долго и даже порожденный в подпотоки.

5
16.01.2014, 09:44
3 ответа

xbacklight

$ xbacklight +30% # increases brightness by 30 percent
$ xbacklight -30% # decreases brightness by 30 percent

dbus путь

$ dbus-send --session --print-reply \
      --dest="org.gnome.SettingsDaemon" \
      /org/gnome/SettingsDaemon/Power \
      org.gnome.SettingsDaemon.Power.Screen.SetPercentage \
      uint32:<percentage>
Пример

Яркость набора к 30%:

$ dbus-send --session --print-reply \
      --dest="org.gnome.SettingsDaemon" \
      /org/gnome/SettingsDaemon/Power \
      org.gnome.SettingsDaemon.Power.Screen.SetPercentage \
      uint32:30 

Или
Уменьшить яркость шагом (~7)

$ dbus-send --session --print-reply \
      --dest="org.gnome.SettingsDaemon" \
      /org/gnome/SettingsDaemon/Power \
      org.gnome.SettingsDaemon.Power.Screen.StepDown

Увеличить яркость шагом (~7)

$ dbus-send --session --print-reply \
      --dest="org.gnome.SettingsDaemon" \
      /org/gnome/SettingsDaemon/Power \
      org.gnome.SettingsDaemon.Power.Screen.StepUp

Если это говорит следующим образом, что Ваша ОС может быть слишком старой. Затем используйте xdotool:

Error org.freedesktop.DBus.Error.UnknownMethod: 
Method "SetPercentage" with signature "u" on interface 
"org.gnome.SettingsDaemon.Power.Screen" doesn't exist

xdotool

  • Яркость увеличения:

    $ xdotool key XF86MonBrightnessUp
    
  • Яркость уменьшения:

    $ xdotool key XF86MonBrightnessDown
    
5
27.01.2020, 20:38
  • 1
    Ваш "dbus путь" работает только с Gnome (и также при выполнении гнома-демона настроек независимо, например, с простым менеджером окон, таким как openbox). –  Risto Salminen 16.01.2014, 13:40
  • 2
    , Принимающий, потому что это - единственный один :D –  Aaron Hall 26.01.2014, 07:31
  • 3
    , он работает?. –  totti 26.01.2014, 07:38
  • 4
  • 5
    dbus путь дает мне эту ошибку: Error org.freedesktop.DBus.Error.UnknownMethod: No such method 'SetPercentage' –  xuhdev 28.11.2014, 09:36

На самом деле я не делал того, что говорится в принятом ответе. Это функция из моего .bashrc :

bright () { sudo sh -c "echo $1 > /sys/class/backlight/intel_backlight/brightness " ; }

Я использую ее так -

Полная яркость:

$ bright 4882

Примерно одна десятая яркости:

$ bright 482

И поскольку функция использует sudo, я мне нужно ввести свой пароль, и это меня устраивает.

1
27.01.2020, 20:38

Вот 2 альтернативных скрипта.

Сохраните его как brightness_change.sh и поместите его в папку, которая является частью вашей переменной окружения $PATH. Использование простое: brightness_change.sh up / brightness_change.sh down.

Затем вы можете назначить скрипт привязке клавиш, только позаботьтесь о том, чтобы указать полный путь к команде.

1. DBUS скрипт (для gnome)

Я предпочитаю Dbus подход, потому что :

  • вам не нужны специальные права для изменения яркости
  • изменения яркости, сделанные скриптом, отражаются в апплете яркости

Вот скрипт

#!/bin/bash
function up(){
    dbus-send --session --type="method_call"  --dest="org.gnome.SettingsDaemon" /org/gnome/SettingsDaemon/Power org.gnome.SettingsDaemon.Power.Screen.StepUp
}

function down(){    
    dbus-send --session --type="method_call" --dest="org.gnome.SettingsDaemon" "/org/gnome/SettingsDaemon/Power" "org.gnome.SettingsDaemon.Power.Screen.StepDown"
}

if [[ $1 = "up" ]]
then
     up
elif [[ $1 = "down" ]]
then        
    down
fi

2. Использование файлов /sys/

Использование этого метода требует либо изменения разрешения целевого файла в /sys/ (при каждой загрузке), либо команды в /etc/sudoers, чтобы не требовать паролей

Я не был уверен, как реализовать первый способ, поэтому я добавил эту строку в /etc/sudoers (где fra - мой пользователь)

fra ALL=(ALL) NOPASSWD: /home/fra/bin/bright_change. sh

Теперь вы можете вызвать команду с sudo без запроса пароля (это наверняка дыра в безопасности, так что позаботьтесь об этом)

#!/bin/bash
file="/sys/class/backlight/intel_backlight/brightness"
level=$(cat $file)
inc=100

if [ $level -lt "600" ]
then
    inc=50
fi

function up(){
    newlevel=$(($level+$inc))
    echo $newlevel
}

function down(){    
    newlevel=$(($level-$inc))

    if [ $newlevel -lt "10" ]
    then
        newlevel=1
    elif [ $newlevel -lt "100" ]
    then
        newlevel=10
    fi
    echo $newlevel
}


if [[ $1 = "up" ]]
then
     newlevel=$(up)
elif [[ $1 = "down" ]]
then        
    newlevel=$(down)
fi  


echo $newlevel
# echo $level

echo $newlevel > $file
0
27.01.2020, 20:38

Теги

Похожие вопросы