Проблема состоит в том, что Ubuntu всегда сбрасывает уровень яркости к максимуму после каждой перезагрузки. Я установил xbacklight
утилита, но команды как xbacklight -get
или xbacklight -set XX
не работать. Я ничего не получаю как вывода.
На самом деле я хотел бы заставить свою Ubuntu помнить уровень яркости, которая использовалась в последний раз. Как точно я могу сделать это? Вот некоторая информация:
ls -l /sys/class/backlight/
total 0
lrwxrwxrwx 1 root root 0 Feb 27 09:43 radeon_bl0 -> ../../devices/pci0000:00/0000:00:01.0/drm/card0/card0-LVDS-1/radeon_bl0
ls -l /sys/class/backlight/radeon_bl0/
total 0
-r--r--r-- 1 root root 4096 Feb 27 09:54 actual_brightness
-rw-r--r-- 1 root root 4096 Feb 27 09:54 bl_power
-rw-r--r-- 1 root root 4096 Feb 27 09:47 brightness
lrwxrwxrwx 1 root root 0 Feb 27 09:54 device -> ../../card0-LVDS-1
-r--r--r-- 1 root root 4096 Feb 27 09:43 max_brightness
drwxr-xr-x 2 root root 0 Feb 27 09:54 power
lrwxrwxrwx 1 root root 0 Feb 27 09:54 subsystem -> ../../../../../../../class/backlight
-r--r--r-- 1 root root 4096 Feb 27 09:43 type
-rw-r--r-- 1 root root 4096 Feb 27 09:42 uevent
uname -r
4.2.0-30-generic
На самом деле я хотел бы заставить свою Ubuntu помнить уровень яркости, которая использовалась в последний раз. Как точно я могу сделать это? Вот некоторая информация:
Введение
Сценарий ниже обращается к потребности OP сохранить и восстановить яркость экрана, которая использовалась в последний раз. Это работает в сочетании с the lightdm
зазывалой и активируют lightdm
. Нет никакого требования для использования lightdm
, таким образом, если Вы предпочитаете использовать задание крона, можно сделать так.
Основная идея:
/etc/lightdm/lightdm.conf
использование sudo
полномочие. [SeatDefaults]
, display-setup-script
, и display-stopped script
. Посмотрите ниже для деталей. Заголовок сценария также дает обзор.Источник сценария
#!/usr/bin/env bash
#
###########################################################
# Author: Serg Kolo , contact: 1047481448@qq.com
# Date: March 7th, 2016
# Purpose: Script that will remember screen brightness
# Must be used in conjunction with lightdm
# Place the following 5 lines into /etc/lightdm/lightdm.conf
#
# [SeatDefaults]
# #display-setup-script = Script to run when starting a greeter session (runs as root)
# display-setup-script = /home/USER/bin/sergrep/brightness.sh restore
# #display-stopped-script = Script to run after stopping the display server (runs as root)
# display-stopped-script = /home/USER/bin/sergrep/brightness.sh store
#
# Basic idea is that you must give full path and either store or restore as an option
# Written for: http://askubuntu.com/q/739654/295286
# Tested on: Ubuntu 14.04 LTS
# Version: 1.2 , added brightness limit, file creation
###########################################################
# Copyright: Serg Kolo , 2016
#
# Permission to use, copy, modify, and distribute this software is hereby granted
# without fee, provided that the copyright notice above and this permission statement
# appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
ARGV0=$0
ARGC=$#
store()
{
cat "$SYSDIR"/*/actual_brightness > "$1"
}
#----------
# This function restores brightness. We avoid
# setting brightness to complete 0, hence
# minimum is 10% that can be restored.
restore()
{
MAX=$(cat "$SYSDIR"/*/max_brightness )
LIMIT=$((MAX/10)) # get approx 10 percent value
VAL=$(cat "$1" )
if [ "$VAL" -lt "$LIMIT" ] ;
then
# avoid going bellow 10% of brightness
# we don't want user's screen to be completely dark
echo "$LIMIT" > "$SYSDIR"/*/brightness
else
echo "$VAL" > "$SYSDIR"/*/brightness
fi
}
#------------
# This function works for initial run of the script; the script cannot set
# brightness unless datafile exists first, so here we create the file
# Initial value there will be whatever the current brightness on first
# reboot was
create_datafile()
{
cat "$SYSDIR"/*/actual_brightness > "$1"
}
puke(){
printf "%s\n" "$@" > /dev/stderr
exit 1
}
main()
{
local DATAFILE="/opt/.last_brightness"
local SYSDIR="/sys/class/backlight" # sysfs location of all the data
# Check pre-conditions for running the script
if [ "$ARGC" -ne 1 ];then
puke "Script requires 1 argument"
fi
if [ $(id -u) -ne 0 ] ; then
puke "Script has to run as root"
fi
# ensure datafile exists
[ -f "$DATAFILE" ] || create_datafile "$DATAFILE"
# perform storing or restoring function
case "$1" in
'restore') restore $DATAFILE ;;
'store') store $DATAFILE ;;
*) puke "Unknown argument";;
esac
}
main "$@"
Получение и Установка Сценарий
Можно или скопировать сценарий непосредственно или выполнить эти шаги из командной строки (для открытия командной строки, нажмите CtrlAltT),
sudo apt-get install git
cd /opt
sudo git clone https://github.com/SergKolo/sergrep.git
Сценарий будет расположен в /opt/sergrep/brightness.sh
, таким образом, мы делаем a:
sudo chmod +x /opt/sergrep/brightness.sh
сделать это исполняемым файлом. Затем, мы должны приступить он к работе с lightdm. Создайте /etc/lightdm/lightdm.conf
файл, любой путем открытия его с командной строкой nano
текстовый редактор (команда sudo nano /etc/lightdm/lightdm.conf
) или графический gedit
( pkexec gedit /etc/lightdm/lightdm.conf
)
Запишите в тот файл следующие строки:
[SeatDefaults]
#display-setup-script = Script to run when starting a greeter session (runs as root)
display-setup-script = /opt/sergrep/brightness.sh restore
#display-stopped-script = Script to run after stopping the display server (runs as root)
display-stopped-script = /opt/sergrep/brightness.sh store
Сохраните и выйдите
Всесторонний обзор
Вы уже обнаружили, что можно записать в /sys/class/backlight/*/brightness
зарегистрируйте непосредственно, и можно также читать в тех значениях также. Проблема - это /sys
виртуальная файловая система, поэтому после того как Вы перезагружаете, все файлы в той файловой системе исчезают.
Таким образом, Вы могли сохранить значение в /sys/class/backlight/*/actual_brightness
в постоянный файл на каждой перезагрузке. Вопрос состоит в том как - через задание крона через lightdm, или через другие средства. Лично, я выбрал lightdm
маршрут.
В основном мы используем в своих интересах функцию lightdm - способность запустить скрипт, прежде чем зазывала запустит и после выходов сессии. Яркость зарегистрирована к /opt/.last_brightness
файл и чтение с каждого раза сценарий запускаются. Мы по существу выполняем два действия с тем же сценарием, только путем передачи различных аргументов.
Имейте Вас, попробовал это:
sudo nano /etc/rc.local
добавляют, эта строка в файл (займите место X с желаемым уровнем яркости):
echo X > /sys/class/backlight/intel_backlight/brightness
Если Вы можете установить яркость с командой, вносить изменение уровня яркости в конкретное значение при запуске легко. Сделайте следующее:
, Это должно выполнить ту команду на запуске. Я не уверен в том, как заставить его помнить предыдущую яркость, но я надеюсь, что это помогает.
Хорошо. Я собираюсь ответить на свой собственный вопрос просто для дальнейшего использования. В моем случае, что я сделал, добавляют следующие строки (это - действительно всего одна строка с набором комментариев для напоминания мне, почему и что я сделал там) к /etc/rc.local
прежде exit 0
:
# The following line should solve the problem of Ubuntu resetting
# the brightness level back to maximum after every reboot.
echo 50 > /sys/class/backlight/radeon_bl0/brightness
Это - то, на что весь файл похож теперь:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# The following line should solve the problem of Ubuntu resetting
# the brightness level back to maximum after every reboot.
echo 50 > /sys/class/backlight/radeon_bl0/brightness
exit 0
, Хотя я не на сто процентов уверен - ли это лучший способ сделать это, все, кажется, работает просто великолепно для меня теперь.
Просто используйте свет вместо этого... Иначе это - путаница для фиксации его, особенно если у Вас есть графика Intel и Nvidia вместе!
Это Работы над Ubuntu 16.04... и тестируется на Alienware M14XR2
Контроль-> https://github.com/haikarainen/light