15

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.

Jorge Castro
  • 71,754
Boris
  • 263

6 Answers6

19
  1. Check brightness levels by running this command as root:

    cat /sys/class/backlight/acpi_video0/max_brightness 
    

    (my laptop max brightness is 20)

  2. 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;)

  3. Edit /etc/rc.local and add before exit 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.

Hevilath
  • 191
16

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

Rahul Virpara
  • 11,720
Teifi
  • 1,312
8

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!

Emil Lunde
  • 611
  • 1
  • 5
  • 10
  • Thanks, the solution worked like a charm although there is a slight pause before the previous settings are retained. – Vesnog May 01 '14 at 21:49
3

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

Seth
  • 58,122
1
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,

enter image description here

Click Add,

enter image description here

Give path as /usr/local/bin/brightness_changer.py in command and Save it.

Now whenever you login, brightness will be set to 70.

Rahul Virpara
  • 11,720
  • I think your program might be better suited for Bash, but I like you answer and I like Python. – Sepero Nov 19 '12 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? – Swarnendu Biswas Oct 20 '13 at 03:52
0

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.