Hey people of the internet!

I have a problem saving/restoring the brightness on my laptop... I am running Ubuntu 15.04 server, with Xfce4, but booting default to command line.

My problem now is, unless I start up Xfce and change the brightness via xBacklight -set 5, nothing changes the brightness of my display. Having the command promt on full brightness looks nice, but eats battery like hell, and i don't need it.

I've read about using systemd-backlight - something, but I can't find anything on how to use it or make it so it restores my brightness on bootup...also, does this work without starting up X? Is there even a way to change the screen brightness without starting X?

(if it matters: running an Asus N550JK which has an intel and nvidia dual graphics thing, called optimus...I'm not using that, only using the intel one. xBacklight changes the value in /sys/class/backlight/intel_backlight/brightness, my desired value would be 244)

Thanks for everything!

  • Did you try adding /usr/share/X11/xorg.conf.d/20-intel.conf file? – Ron May 4 '15 at 9:59

I've read about using systemd-backlight - something, but I can't find anything on how to use it or make it so it restores my brightness on bootup

Many of these things are quite poorly documented in systemd. The documentation pretty much boils down to "systemd-wibble.service is a service that runs systemd-wibble, and systemd-wibble is a program run by systemd-wibble.service; and it wibbles.". There's no real explanation of how, when, or where; or clue as to how this fits into an overall system. The systemd-backlight manual page is a case in point.

What happens is this:

You don't run the service, or the program, directly. Instead:

  1. A udev rule is triggered by the presence of "backlight" or "leds" devices on your system. (It's in the the 99-systemd.rules list.)
  2. udev takes the name of the device that triggered the rule and incorporates it into a service name.
  3. This service is an instantiation of the systemd-backlight@.service service template unit file.
  4. udev tells systemd to activate the service.
  5. The service unit file causes the template parameter to be passed as a command-line argument to the systemd-backlight command, which then does its thing.

In your case, this would end up activating a systemd-backlight@backlight:intel_backlight.service service, which would end up running systemd-backlight start backlight:intel_backlight

So your basic problem could be one of three things: your service unit is masked, the udev rule isn't triggering, or it's not triggering as the right kind of device.

systemctl status systemd-backlight@backlight:intel_backlight.service should give you some idea.

  • What about a conflict between nvidia backlight and intel backlight ? – solsTiCe May 4 '15 at 13:18

Try the suggestion here and see if it works for you. So open the file:

sudo nano /etc/rc.local

and add the following line:

echo 244 > /sys/class/backlight/intel_backlight/brightness

Reboot and see if this helped you.


I have a Dell laptop with Nvidia and Intel graphics and was facing a similar problem.

With help from the answer above by JdeBP and this post from the ArchLinux forums here is what I did to resolve the problem(for now):

As root:

echo 1 > /sys/class/backlight/dell_backlight/brightness

/lib/systemd/systemd-backlight save backlight:dell_backlight

This created a file in /var/lib/systemd/backlight named platform-dell-laptop:backlight:dell_backlight with the value 1. A similar attempt with intel backlight did not seem to work.

It appears for now that the systemd-backlight service is reading this value on boot and setting the display brightness accordingly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.