58

Every time I reboot my machine the brightness goes back to 100% in Gnome. I wish it would keep the last setting. Is there anyway?

5
  • have you tried gnome-session-save?
    – Hellola
    Sep 8, 2010 at 2:55
  • Sorry, but there is no slider. Also in Ubuntu 11.04 i had the problem, that the brightness slider was not there, when booting up with AC connected. When I booted up on battery the slider was there. I hoped that this was fixed but now i still have a nearly dark screen, when booting up.
    – user31707
    Nov 1, 2011 at 13:29
  • Anyone coming here with the same problem, check out @dolhow's answer below. That's the one that works.
    – its_me
    Jan 19, 2012 at 4:53
  • There is a bug report for this here: bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/… Nov 11, 2012 at 19:30
  • 1
    In my case with Ubuntu 13.04 running over Acer 4752-6600 the correct param was: echo 976 > /sys/class/backlight/intel_backlight/brightness
    – mlacunza
    Oct 15, 2013 at 19:31

11 Answers 11

21

The file /etc/rc.local should look like this:

#!/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.
echo 0 > /sys/class/backlight/acpi_video0/brightness
exit 0

Per @zerdo: In my dell studio 1558 the brightness setting is stored in /sys/class/backlight/intel_backlight/brightness. Just change the path if your computer doesn't use the acpi_video0 folder.

Also, per @Nick : If this is the only answer you read, note that the 0 in echo 0 is going to be your default brightness setting. I had set this up and it was driving me crazy for a long time : every time I booted up, it would set it to the lowest brightness setting. I prefer mine to start at max brightness, so I used echo 10 instead. Your hardware might vary in brightness scale.

5
  • This one works!!!
    – its_me
    Jan 19, 2012 at 4:53
  • 1
    In my dell studio 1558 the brightness setting is stored in /sys/class/backlight/intel_backlight/brightness, just change the path if your computer doesn't use the acpi_video0 folder
    – zurdo
    Feb 2, 2012 at 16:59
  • If this is the only answer you read, note that the 0 in echo 0 is going to be your default brightness setting. I had set this up and it was driving me crazy for a long time that every time I booted up, it would set it to the lowest brightness setting. I prefer mine to start at max brightness, so I used echo 10 instead. Your hardware might vary in brightness scale.
    – Nick
    Feb 21, 2013 at 15:28
  • and note that you can check /sys/class/backlight/acpi_video0/brightness to see what your current brightness level is. for my ubuntu 14.04, the scale goes from 0-100 and I like to set it at 75.
    – Kevin Qi
    Jan 6, 2015 at 16:09
  • 1
    Doesn't work in ubuntu 20.04
    – fikr4n
    Jun 9, 2021 at 6:10
13

This function, the backlight control, is dependent on your bios and kernel version.

Try these four things.

Kernel (boot) options

When you boot, at the grub screen, hit e to edit. To the kernel line add nomodeset acpi_backlight=vendor Some hardware may work with different options.

Intel - nomodeset acpi_backlight=intel Acer - acpi_backlight=acer_acpi or even acpi_osi=Linux acpi_backlight=legacy.

As you can see, you may need to google search for your settings.

quiet splash nomodeset acpi_backlight=vendor

If that works, edit /etc/default/grub and add those options to the default options.

# command line
sudo -e /etc/default/grub

# graphical
gksu gedit /etc/default/grub

Edit the "GRUB_CMDLINE_LINUX_DEFAULT" line so it looks like this

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset acpi_backlight=vendor"

Save your edit, update grub

sudo update-grub

Command line

If that does not work, you can try to manually set the brightness.

Note: Path may vary with hardware / kernel version, may be /proc/acpi/video0 ..., you may need to browse the /proc/acpi directory to find the brightness setting and adjust the following commands accordingly.

cat /proc/acpi/video/VGA/LCD/brightness

The output of that command varies a bit with hardware, 1 -> 10 , 1 -> 12 , 1 -> 100 ??? Choose a value and set it (choose the value for your hardware).

sudo echo 80 > /proc/acpi/video/VGA/LCD/brightness

If that works, add it to /etc/rc.local

# command line
sudo -e /etc/rc.local

# graphical
gksu gedit /etc/rc.local

Add in your setting above "exit 0"

echo 80 > /proc/acpi/video/VGA/LCD/brightness

xbacklight

You can also try xbacklight

sudo apt-get install xbacklight

You then adjust with the command line

# For 80 % brightness
xbacklight -set 80

Again, add that to /etc/rc.local

# command line
sudo -e /etc/rc.local

# graphical
gksu gedit /etc/rc.local

Add in, above "exit 0"

xbacklight -set 80

setpci

You can try to set your brightness with setpci

The general syntax is

sudo setpci -s <address> f4.B=your_setting

You identify your pci bus address with

sudo lspci | grep VGA

Example

00:02.0 VGA compatible controller: Cirrus Logic GD 5446

setpci -s 00:02.0 F4.B=80

If you get your setting wrong, most likely you will just loose your display, and have to reboot. As this is a hardware setting, you really need to identify your hardware and research the settings first.

Examples

Intel - https://bbs.archlinux.org/viewtopic.php?id=74914

Toshiba - http://www.linlap.com/wiki/toshiba+satellite+t130

Acer extensa - https://bugs.launchpad.net/ubuntu/+source/linux/+bug/518002

Ubuntu man page setpci

1
  • 1
    You should never, ever set 'acpi_osi=Linux'. The kernel ACPI code is carefully written to be compatible with Windows, and therefore by default advertises itself at Windows so that the same BIOS functions are used. If you override this, you are doomed to a grab bag of bugs in untested code paths that will never be fixed. Even if you find that acpi_osi=Linux fixes your immediate symptom, you are going to end up with an unsupported mess.
    – slangasek
    May 30, 2012 at 0:37
12
+250

This is supposed to be configurable in the energy options, set the brightness to the desired level and it will always be used. If you use a laptop you will also need to configure the level for battery mode as well...

I found that Gnome has some issues about lcd panel brightness, e.g. if I run on battery mode and set the brightness manually to a given level and leave the laptop unattended for 10 seconds it will go back to the preset brightness when I take control back. Same goes when on A/C mode except it takes longer so goes unnoticed more easily. I believe all those settings should be saved somewhere and restored - at least for A/C mode.

EDIT: For gnome3 this does not work (at least for me).

4
  • I was hoping for something that automatically remembers my changes via keyboard shortcuts, but I guess you are right.
    – Decio Lira
    Sep 8, 2010 at 17:38
  • 10
    So the answer is...? Changing it in Screen settings doesn't save it for the next session, and there's nothing in Power options. Nov 10, 2011 at 23:09
  • As far as I remember, the setting is supposed to be restored/saved between sessions. It has been a while since I last toyed with those settings and I don't have access to a machine running the latest Ubuntu at the moment, maybe this is a new bug?
    – levesque
    Nov 11, 2011 at 15:38
  • More complete answer on askubuntu.com/questions/66751/… May 7, 2015 at 23:58
7

Here is a quick workaround for that :-

Try testing the setting by typing this command in terminal

echo 0 > /sys/class/backlight/acpi_video0/brightness

if the brightness changes to minimum, you have got it right !

Edit the /etc/rc.local file by typing

sudo -H gedit /etc/rc.local    

in terminal

Comment out the exit 0 by adding # in the beginning such that it looks like this :-

#!/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.

#exit 0

this is necessary otherwise it wont work !

after this add the following line in the file

echo 0 > /sys/class/backlight/acpi_video0/brightness

such that it looks like this :-

#!/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.

#exit 0
echo 0 > /sys/class/backlight/acpi_video0/brightness

replace 0 with the required brightness value ( ranges from 0 to 10 )

save the file and exit.

Reboot to see the changes.

Note:- you may have to replace acpi_video0 with your device code if you have a different one (it's mostly acpi_video0). Most users won't need to do so.

2
  • This should also work since exit 0 has been commented out.
    – its_me
    Jan 19, 2012 at 4:55
  • 5
    But I don't think commenting out exit 0 is the right thing to do.
    – its_me
    Jan 19, 2012 at 5:09
4

To adjust screen brightness in 11.10, you will need to access the "System Settings":

  1. Right-click directly to the right of your username in the toolbar in the upper-right corner of your screen.

  2. Select "System Settings."

  3. Select "Screen".

  4. Drag the slider with your mouse to adjust screen brightness.

If Ubuntu isn't remembering your adjustment, you may use an application or you may need to use the workaround for GNOME: Brightness setting not saved in Ubuntu 11.10

2
  • 2
    Okay, So i attempted to do this and it did not remember it. so after modifying the script I then enter the command "echo 0 > /sys/class/backlight/acpi_video0/brightness" but that does not work, because my/sys/class/backlight directory contains a dell_backlight and a intel_backlight Nov 2, 2011 at 5:08
  • I have the same issue, this parameter is not remembered between sessions.
    – levesque
    Dec 21, 2011 at 21:40
3

Here is a great work around I found, credit and thanks to thaelim on Ubuntu forum How to get effective display brightness management under Unity/Gnome Shell just download the script edit the perimeters at the beginning of the script and save it when your done to your home folder. Heres the download of the full script brightmanager.py

These are the variable perimeters to change to your desired settings, as you can see I like mine at 20 all the time with no idle timeout.

IDLE_DIM_TIME = 0
IDLE_DIM_AC = False
IDLE_DIM_BATTERY = False
IDLE_BRIGHT = 20
BRIGHT_BATTERY = 20
BRIGHT_AC = 20

After saving then open a terminal and enter

chmod +x brightmanager.py

Then open up startup applications from the dash, click on the add button, name your start up application, and enter your command as:

python /home/david/brightmanager.py

replacing "david" with your home folders name, then add a description and click add, logout, and back in, and your done, you now have brightness settings for battery, AC, and idle.

enter image description here

You will want to do this for each user and each user should have their own copy of the script in their home folder with their own desired settings in the beginning of the script.

1

The "Screen" option of "System Settings" works OK, and in /sys/class/backlight/acpi_video0/brightness the option also change accordingly, but the problem is that nothing happens with the real brightness.

I found the solution to my problem:

Add the next option under your "Device" section in /etc/X11/xorg.conf and restart:

Option "RegistryDwords" "EnableBrightnessControl=1"

This worked for my NVIDIA card (Ubuntu 11.10 x64 on Toshiba Satellite L745-SP4142CL)

0
1
  • If use nVidia just open dash home and type "NVIDIA X server setting".
  • Then click "X Server Color Correction" under X Screen O.
  • Reduce the Brightness level.
  • Click "Confirm current changes" before the time runs out.
  • Choose Quit to save the change.

It worked for me with the following spesifications:

  • Toshiba Satellite L745
  • Intel Core i3
  • NVidia GeForce with CUDA
  • RAM 6 GB
1

There seems to be a bug report about this:

https://bugs.launchpad.net/ubuntu/+source/upower/+bug/840707

For me, it has worked to place:

echo 0 > /sys/class/backlight/acpi_video0/brightness

in /etc/rc.local.

Or, as others suggested,

echo 5 > /sys/class/backlight/*/brightness

might work.

1
  • 1
    Nice find, but I don't think that's exactly the right bug. I think this one is. Nov 11, 2012 at 19:30
0

I found a workaround on webupd8: Fix brightness getting reset (to a very low value or maximum) on reboot in Ubuntu

  1. The first thing you need to do is to find out which ACPI interface (acpi_video) controls the brightness. This can be done by looking into your Xorg log file to see which acpi_video was loaded. To do this via command line, simply use the following command:

    grep acpi_video /var/log/Xorg.0.log
    

    The command above should display an output similar to this:

    [     7.385] (--) intel(0): Found backlight control interface
    acpi_videoX (type 'firmware') for output LVDS1
    

    where acpi_videoX is acpi_video0 or acpi_video1. This is the acpi_video module that controls the brightness, so remember it for the next steps.

    If the command above doesn't display any output and you have a folder called intel_backlight under /sys/class/backlight/, then use intel_backlight as the ACPI interface for the next steps.

  2. Next, set (via keyboard Fn + brightness keys) your laptop's brightness to the level you want Ubuntu to use after when it starts.

  3. Now we'll have to get the actual brightness value you set under step 2. To do this, run the following command:

    cat /sys/class/backlight/acpi_videoX/brightness
    

    where acpi_videoX is the ACPI interface which controls your laptop's brightness, which you found out under step 1.

    Remember this value for the next step.

  4. The next step is to create a file (as root) called fixbrightness.conf in your /etc/init/ directory, for example:

    gksu gedit /etc/init/fixbrightness.conf
    

    And in this file, paste this:

    description "Sets brightness after graphics device is loaded"
    
    start on graphics-device-added
    
    task
    
    exec /bin/echo BRIGHTNESS_VALUE > /sys/class/backlight/acpi_videoX/brightness
    

    here, you need to

    • replace BRIGHTNESS_VALUE with the brightness value you got in step 3

    • replace acpi_videoX with the ACPI Interface that controls your laptop's brightness, which you found out in step 1.

    Then save the file.

  5. Reboot and the low or maximum brightness issue after reboot / logout should be fixed.

-1

Run

echo 2 > /sys/class/backlight/acpi_video0/brightness

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .