Они используют 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 электронных писем долго и даже порожденный в подпотоки.
$ xbacklight +30% # increases brightness by 30 percent
$ xbacklight -30% # decreases brightness by 30 percent
$ 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 key XF86MonBrightnessUp
Яркость уменьшения:
$ xdotool key XF86MonBrightnessDown
На самом деле я не делал того, что говорится в принятом ответе. Это функция из моего .bashrc
:
bright () { sudo sh -c "echo $1 > /sys/class/backlight/intel_backlight/brightness " ; }
Я использую ее так -
Полная яркость:
$ bright 4882
Примерно одна десятая яркости:
$ bright 482
И поскольку функция использует sudo, я мне нужно ввести свой пароль, и это меня устраивает.
Вот 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
Error org.freedesktop.DBus.Error.UnknownMethod: No such method 'SetPercentage'
– xuhdev 28.11.2014, 09:36