After I upgraded my notebook to ubuntu 12.04, I found that I can not save my power settings. Every time I set the screen brightness to 70%, it restored to 100% next time. I can't find a save button on the new power setting panel(I am sorry for I can not post a screenshot right now). Can anyone tell me how to save this setting? Thanks.
6 Answers
Check brightness levels by running this command as root:
cat /sys/class/backlight/acpi_video0/max_brightness
(my laptop max brightness is 20)
Set you screen brightness to minimum and check current level by evoking next command
cat /sys/class/backlight/acpi_video0/brightness
(my laptop min brightness level is 0;)
Edit
/etc/rc.local
and add beforeexit 0
the following line:echo YOUR_VALUE > /sys/class/backlight/acpi_video0/brightness
From now on this brightness level will be set every time you start your computer.
-
The directory with the brightness setting could have a different name. In my case (ThinkPad T540p, Ubuntu 14.04.3) it is:
/sys/class/backlight/intel_backlight/
. Nov 29, 2015 at 14:59 -
Works on startup but not after hibernate or suspend. Ubuntu 16.04 May 30, 2018 at 14:28
if you just wana change and save the screen brightness only, you can use xbacklight
sudo apt-get install xbacklight
after installing, type command to set the screen brightness easily
xbacklight -set `num`
the num
is percentage of your screen brightness.
An easier way to set brightness and contrast
sudo setpci -s `00:02.0` F4.B=`XX`
to set brightness, 00:02.0
is your VGA device code.XX
is hexadecimal form 00 to FF
use lspci
command to find out your VGA device code.
xgamma -gamma `X`
to set contrast,X
from 0 to 1
-
Oh, currently I just want to save my screen brightness settings. Thanks, Teifi. :)– BorisJun 2, 2012 at 16:25
-
2I can`t believe there is no GUI for this. Ubuntu should be linux for human beings. Thanks for the tip!– umpirskyNov 4, 2012 at 19:15
-
Beware about using setpci for this. For details see askubuntu.com/questions/66751/… Nov 7, 2013 at 6:00
Personally I prefer starting with the brightness I had the last time I used my computer. Here is how I got that functionality:
First create a file to store your screen brightness between sessions:
cd /etc/init.d
sudo touch prev_brightness
sudo chmod o+w prev_brightness
Then create a script that stores your current screen brightness when shutting down into the file you created in the previous step:
sudo touch save_screen_brightness
sudo chmod +x save_screen_brightness
sudo gedit save_screen_brightness
Put this into the file you just opened:
#!/bin/sh
cat /sys/class/backlight/acpi_video0/brightness > /etc/init.d/prev_brightness
Now we need to make the script run every time we shut down or reboot the computer:
sudo ln -s /etc/init.d/save_screen_brightness /etc/rc0.d/K99save_screen_brightness
sudo ln -s /etc/init.d/save_screen_brightness /etc/rc6.d/K99save_screen_brightness
Finally we need to load the value we stored when starting the computer:
sudo gedit /etc/rc.local
Put this, before exit 0, into the file you just opened:
cat /etc/init.d/prev_brightness > /sys/class/backlight/acpi_video0/brightness
That's it!
-
Thanks, the solution worked like a charm although there is a slight pause before the previous settings are retained.– VesnogMay 1, 2014 at 21:49
Using Ubuntu 12.10 the solution Hevilath gave didn't work for me. No matter what I did with rc.local it wouldn't run.
I tried to add
echo 5 > /sys/class/backlight/acpi_video0/brightness
before the exit 0
and it was not being called. I added some logging statements to /etc/rc.local
and /etc/init.d/rc.local
and nothing was being run at all.
This should be working because Upstart still runs the older System V scripts at the appropriate times for backwards compatibility.
So I read up on how to write an Upstart script from here.
I figured since System V is on its way out, I should learn about Upstart.
I wrote a simple script to set the brightness on my two monitors and it works without issue.
Check it out here.
All you have to do is copy the file into your /etc/init/ directory using sudo. It should just work unless the brightness value is being echo'ed to the wrong file in case it is a simple change.
Hope this helps
gksudo gedit /usr/local/bin/brightness_changer.py
Paste below code,
#!/usr/bin/python
import dbus
bus = dbus.SessionBus()
proxy = bus.get_object('org.gnome.SettingsDaemon',
'/org/gnome/SettingsDaemon/Power')
iface = dbus.Interface(proxy, dbus_interface='org.gnome.SettingsDaemon.Power.Screen')
iface.SetPercentage(70)
Save it. Then issue command,
sudo chmod 755 /usr/local/bin/brightness_changer.py
Open Startup Applications,
Click Add,
Give path as /usr/local/bin/brightness_changer.py
in command and Save it.
Now whenever you login, brightness will be set to 70
.
-
I think your program might be better suited for Bash, but I like you answer and I like Python.– SeperoNov 19, 2012 at 12:57
-
@virpara: I was using your script and it used to work. But it doesn't work anymore with Gnome 3.10. I couldn't find org.gnome.SettingsDaemon.Power.Screen with dconf. Any ideas? Oct 20, 2013 at 3:52
I'm using a HP all-in-one PC. And I cannot make xbacklight to be executed in rc.local, which the reason needed to be explored.
So I just put the
xbacklight -set 0
command into StartUp Applications and it helps reduce the screen brightness after login.